使用subset()时确定导致"未定义列选定"的列名称错误

dbe*_*tus 4 r subset

我正在尝试使用非常大的数据帧来分配大数据帧

data.new <- subset(data, select = vector)
Run Code Online (Sandbox Code Playgroud)

vector是一个包含我想要隔离的列名的字符串.当我这样做时,我得到了

Error in `[.data.frame`(x, r, vars, drop = drop) : 
  undefined columns selected
Run Code Online (Sandbox Code Playgroud)

有没有办法确定向量中的哪个特定列名未定义?通过反复试验,我将其缩小到大约400,但这仍然无济于事.

Ben*_*ker 5

找到向量中不%in%属于names()数据框的元素.

工作范例:

dd <- data.frame(a=1,b=2)
subset(dd,select=c("a"))
##   a
## 1 1
Run Code Online (Sandbox Code Playgroud)

现在尝试一些不起作用的东西:

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"
Run Code Online (Sandbox Code Playgroud)

要么

setdiff(v,names(dd))
## [1] "d"
Run Code Online (Sandbox Code Playgroud)

示例代码的最后几行?match显示了类似的情况.