ฉันมี data.frame ชื่อ "abcframe"
a b c
1 1 1
2 2 3
ฉันจะทราบได้อย่างไรว่ามีคอลัมน์อยู่หรือไม่อยู่ในกรอบข้อมูลที่กำหนด ตัวอย่างเช่นฉันต้องการค้นหาว่ามีคอลัมน์ dอยู่ใน abcframe data.frameหรือไม่
ฉันมี data.frame ชื่อ "abcframe"
a b c
1 1 1
2 2 3
ฉันจะทราบได้อย่างไรว่ามีคอลัมน์อยู่หรือไม่อยู่ในกรอบข้อมูลที่กำหนด ตัวอย่างเช่นฉันต้องการค้นหาว่ามีคอลัมน์ dอยู่ใน abcframe data.frameหรือไม่
คำตอบ:
สมมติว่าชื่อเฟรมข้อมูลของคุณคือdat
และชื่อคอลัมน์ของคุณที่จะตรวจสอบคือ"d"
คุณสามารถใช้ตัว%in%
ดำเนินการ:
if("d" %in% colnames(dat))
{
cat("Yep, it's in there!\n");
}
!
ที่จุดเริ่มต้น:if(!"d"%in% colnames(dat))
if("d" & "e" & "f" %in% colnames(dat)) { cat("Yep, it's in there!\n"); }
. ขอบคุณ! - โอ้ฉันอาจจะพบคำตอบด้วยตัวเอง: stackoverflow.com/questions/21770912/… .
คุณมีตัวเลือกมากมายรวมถึงการใช้%in%
และgrepl
:
dat <- data.frame(a=1:2, b=2:3, c=4:5)
dat
a b c
1 1 2 4
2 2 3 5
ในการรับชื่อของคอลัมน์:
names(dat)
[1] "a" "b" "c"
ใช้%in%
ตรวจสอบการเป็นสมาชิก:
"d" %in% names(dat)
[1] FALSE
Or use `grepl` to check for a match:
grepl("d", names(dat))
[1] FALSE FALSE FALSE
grepl
บิตที่แม่นยำมากขึ้นคุณสามารถใช้grepl("^d$",names(dat))
เพื่อให้แน่ใจว่าคอลัมน์ที่มีชื่อไม่ได้กลับdd
TRUE
colnames
ไม่ได้ผลสำหรับฉัน แต่names
ทำได้
คุณสามารถใช้any
:
> names(dat)
[1] "a" "b" "c"
> any(names(dat) == 'b')
[1] TRUE
> any(names(dat) == 'B')
[1] FALSE
คุณยังสามารถใช้if(!is.null(abcframe$d))
เพื่อทดสอบว่าd
มีอยู่ในabcframe
ไฟล์.
dat <- data.frame(a = 1:2, b = 2:3, c = 4:5)
if (!is.null(dat$d)) {
print("d exists")
} else {
print("d does not exist")
}
if (!is.null(dat$a)) {
print("a exists")
} else {
print("a does not exist")
}
d
หรือไม่หรือคุณต้องการทราบว่าเวกเตอร์ที่ระบุd
เท่ากับหนึ่งในคอลัมน์ของเฟรมข้อมูลของคุณหรือไม่