Kolom dan Baris
Termasuk bagian Logika dan Alur dalam perjalanan R di Coddy. Pelajaran 43 dari 64.
df$col dan df[["col"]] mengembalikan kolom sebagai vektor biasa, sehingga semua fungsi vektor dapat digunakan padanya. [[ ]] menerima nama kolom yang disimpan dalam variabel:
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]])Output:
[1] 36 22 41
[1] 33
[1] "london" "paris" "rome" Tanda kurung siku menggunakan format [row, column], seperti matriks. Sisi yang kosong memilih semuanya, dan kolom dapat dipilih berdasarkan nama:
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")])Output:
name age city
2 bo 22 paris
name city
1 ada london
2 bo paris
3 cy romeSatu sel adalah df[row, column], dan menetapkan nilai padanya akan mengubah nilainya. Menetapkan nilai ke seluruh kolom juga dilakukan dengan cara yang sama:
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)Output:
[1] 41
name age city
1 ada 36 LONDON
2 bo 22 PARIS
3 cy 42 ROMEUntuk menelusuri baris satu per satu, lakukan perulangan pada seq_len(nrow(df)) dan baca setiap sel dengan df[i, "col"] atau df$col[i]:
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")
}Output:
ada lives in london
bo lives in paris
cy lives in rome Tantangan
MudahLengkapi person_card(df, i). Kembalikan satu baris untuk setiap kolom pada baris i, name: bo, yang berisi nama kolom dan nilai pada baris tersebut, sesuai urutan kolom.
Code yang disediakan membaca tabel dari input dengan read.csv(text = input): baris pertama berisi nama kolom dan setiap baris berikutnya adalah satu baris, dengan nilai yang dipisahkan oleh koma. Baris input terakhir berisi i, dan code mencetak setiap baris yang dikembalikan.
Coba sendiri
person_card <- function(df, i) {
# Tulis kodemu di sini
character(0)
}
# Kode input/output yang disediakan: biarkan tetap seperti ini
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")
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami string
Substring dengan substr()Memformat dengan sprintf()Memisahkan dan MenggabungkanMencari stringMengganti TeksRangkuman: Pembuat Nama Pengguna4Matriks
Membuat MatriksMengakses Elemen MatriksRingkasan Baris dan KolomAritmetika MatriksRangkuman: Denah Tempat Duduk2Pencarian Nilai-Kunci
Pencarian pada Vector BernamaMemeriksa KunciMenambahkan dan Menghapus KunciMenelusuri NamaUlasan: Meja Saham5Proyek, Buku Nilai
Menambahkan SiswaMencatat Nilai3Set dan Penghitungan
Nilai UnikOperasi setPengujian KeanggotaanMenghitung dengan table()Ulasan: Tamu Acara6Fungsi sebagai Nilai
Fungsi AnonimMengirim FungsiMengembalikan FungsiClosure dengan StateRangkuman: Aturan Diskon9Data Frame
Membuat Data FrameKolom dan BarisMemfilter BarisMenambahkan dan MengurutkanRangkuman: Laporan Penjualan12Proyek: Pelacak Pengeluaran
Mencatat PengeluaranTotal PengeluaranLatihan sendiri: Compiler R online