我正在尝试使用
从非常大的数据帧中对大数据帧进行子集化data.new <- subset(data, select = vector)
其中vector是一个包含我想要隔离的列名的字符串。当我这样做时,我得到了
Error in `[.data.frame`(x, r, vars, drop = drop) :
undefined columns selected
有没有办法确定向量中哪个特定列名未定义?通过反复试验,我将其缩小到大约400,但这仍然无济于事。
答案 0 :(得分:5)
找到不是%in%
数据框names()
的向量元素。
工作示例:
dd <- data.frame(a=1,b=2)
subset(dd,select=c("a"))
## a
## 1 1
现在尝试一些不起作用的东西:
v <- c("a","d")
subset(dd,select=v)
## Error in `[.data.frame`(x, r, vars, drop = drop) :
## undefined columns selected
v[!v %in% names(dd)]
## [1] "d"
或者
setdiff(v,names(dd))
## [1] "d"
?match
中示例代码的最后几行显示了类似的情况。