Menu
Coddy logo textTech

Sütunlar ve Satırlar

Coddy'nin R Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 43 / 64.

df$col ve df[["col"]] bir sütunu düz vektör olarak döndürür; bu nedenle her vektör işlevi onun üzerinde çalışır. [[ ]], bir değişkende saklanan sütun adını kabul eder:

people <- data.frame(
  name = c("ada", "bo", "cy"),
  age = c(36, 22, 41),
  city = c("london", "paris", "rome")
)
print(people$age)
print(mean(people$age))
col <- "city"
print(people[[col]])

Çıktı:

[1] 36 22 41
[1] 33
[1] "london" "paris"  "rome"  

Köşeli parantezler matrislerde olduğu gibi [row, column] alır. Boş bırakılan bir taraf her şeyi seçer ve sütunlar ada göre seçilebilir:

people <- data.frame(
  name = c("ada", "bo", "cy"),
  age = c(36, 22, 41),
  city = c("london", "paris", "rome")
)
print(people[2, ])
print(people[, c("name", "city")])

Çıktı:

  name age  city
2   bo  22 paris
  name   city
1  ada london
2   bo  paris
3   cy   rome

Bir hücre df[row, column] şeklindedir ve ona atama yapmak değeri değiştirir. Bir sütunun tamamına atama yapmak da aynı şekilde çalışır:

people <- data.frame(
  name = c("ada", "bo", "cy"),
  age = c(36, 22, 41),
  city = c("london", "paris", "rome")
)
print(people[3, "age"])
people[3, "age"] <- 42
people$city <- toupper(people$city)
print(people)

Çıktı:

[1] 41
  name age   city
1  ada  36 LONDON
2   bo  22  PARIS
3   cy  42   ROME

Satırları tek tek işlemek için seq_len(nrow(df)) üzerinde döngü kurun ve her hücreyi df[i, "col"] veya df$col[i] ile okuyun:

people <- data.frame(
  name = c("ada", "bo", "cy"),
  age = c(36, 22, 41),
  city = c("london", "paris", "rome")
)
for (i in seq_len(nrow(people))) {
  cat(people$name[i], "lives in", people[i, "city"], "\n")
}

Çıktı:

ada lives in london 
bo lives in paris 
cy lives in rome 
challenge icon

Görev

Kolay

person_card(df, i) işlevini tamamla. i satırı için sütun başına bir satır, sütun adı ve o satırdaki değerle birlikte name: bo biçiminde, sütunların sırasına göre döndür.

Sağlanan kod, tabloyu girdiden read.csv(text = input) ile okur: ilk satır sütun adlarını, sonraki her satır ise virgüllerle ayrılmış değerlerden oluşan bir satırı içerir. Son girdi satırı i değerini içerir ve kod döndürülen her satırı yazdırır.

Kendin dene

person_card <- function(df, i) {
  # Kodunuzu buraya yazın
  character(0)
}

# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
df <- read.csv(text = input[-length(input)])
i <- as.numeric(input[length(input)])
cat(person_card(df, i), sep = "\n")
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online R derleyicisi