Saya memiliki data.frame dengan nama "abcframe"
a b c
1 1 1
2 2 3
Bagaimana cara mengetahui apakah kolom ada atau tidak dalam bingkai data tertentu? Misalnya, saya ingin mencari tahu apakah kolom d ada di data.frame abcframe .
d
, atau Anda ingin tahu apakah suatu vektord
sama dengan salah satu kolom bingkai data Anda?Jawaban:
Dengan asumsi bahwa nama frame data Anda adalah
dat
dan nama kolom yang akan diperiksa adalah"d"
, Anda dapat menggunakan%in%
operator:sumber
!
di awal:if(!"d"%in% colnames(dat))
if("d" & "e" & "f" %in% colnames(dat)) { cat("Yep, it's in there!\n"); }
. Terima kasih! - Oh, saya mungkin telah menemukan jawabannya sendiri: stackoverflow.com/questions/21770912/… .Anda memiliki sejumlah opsi, termasuk menggunakan
%in%
dangrepl
:Untuk mendapatkan nama kolom:
Gunakan
%in%
untuk memeriksa keanggotaan:sumber
grepl
lebih tepat, Anda bisa menggunakangrepl("^d$",names(dat))
, untuk memastikan bahwa kolom dengan namadd
tidak kembaliTRUE
.colnames
tidak berhasil untuk saya tetapinames
berhasil.Anda bisa menggunakan
any
:sumber
Anda juga bisa menggunakan
if(!is.null(abcframe$d))
untuk menguji apakahd
ada diabcframe
.sumber