R 查找数据框中是否存在列的步骤

R 查找数据框中是否存在列的步骤,r,R,我有一个名为“abcframe”的data.frame 如何查找给定数据帧中是否存在列? 例如,我想知道data.frameabcframe中是否存在列d,假设您的数据帧的名称是dat,并且要检查的列名是“d”,您可以使用%in%操作符: if("d" %in% colnames(dat)) { cat("Yep, it's in there!\n"); } 您有许多选项,包括在%中使用%和grepl: dat <- data.frame(a=1:2, b=2:3, c=4:5) d

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

如何查找给定数据帧中是否存在列?
例如,我想知道data.frameabcframe中是否存在列d,假设您的数据帧的名称是
dat
,并且要检查的列名是
“d”
,您可以使用
%in%
操作符:

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

您有许多选项,包括在%中使用
%和
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
使用%
中的
%检查成员资格:

"d" %in% names(dat)
[1] FALSE

Or use `grepl` to check for a match:

grepl("d", names(dat))
[1] FALSE FALSE FALSE

您可以使用
任何

> names(dat)
[1] "a" "b" "c"
> any(names(dat) == 'b')
[1] TRUE
> any(names(dat) == 'B')
[1] FALSE

您还可以使用
if(!is.null(abcframe$d))
来测试
abcframe
中是否存在
d

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")
}

dat您想知道您的数据框中是否有一列的名称为
d
,或者您想知道给定的向量
d
是否等于您的数据框中的一列?我想知道数据框中是否有一列的名称为d的克隆,或者不希望您有100票的好天气!:-)要使
grepl
更加精确,您可以使用
grepl(^d$”,names(dat))
,以确保名为
dd
的列不会返回
TRUE
。谢谢,
colnames
对我不起作用,但
names
对我起作用。@Andrie有没有办法将列与两个大数据帧进行比较,看看另一列缺少哪些列名?如果你看的是相反的,也就是说,如果列不存在,只需添加
开头:
如果(!“d”%in%colnames(dat))
答案很棒。如果要查找“d”列、“e”列和“f”列,该如何扩展它?那会是:
如果(%colnames(dat))中的(“d”和“e”和“f”){cat(“是的,它在那里!\n”);}
。谢谢哦,我自己可能已经找到了答案:.all(c(“d”,“e”,“f”)%in%colnames(dat))有趣的是,这在tidyverse tibble中失败了,因为'dat$d'会抛出一个警告。
> names(dat)
[1] "a" "b" "c"
> any(names(dat) == 'b')
[1] TRUE
> any(names(dat) == 'B')
[1] FALSE
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")
}