查找数据框中是否存在列

问题描述 投票:87回答:3

我有一个名为“abcframe”的data.frame

     a  b  c
     1  1  1
     2  2  3

如何在给定数据框中查找列是否存在?例如,我想知道data.frame abcframe中是否存在列d。

r
3个回答
153
投票

假设您的数据框的名称是dat,并且要检查的列名是"d",则可以使用%in%运算符:

if("d" %in% colnames(dat))
{
  cat("Yep, it's in there!\n");
}

22
投票

你有很多选择,包括使用%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

5
投票

你可以使用any

> names(dat)
[1] "a" "b" "c"
> any(names(dat) == 'b')
[1] TRUE
> any(names(dat) == 'B')
[1] FALSE
© www.soinside.com 2019 - 2024. All rights reserved.