【问题标题】:Determine which column name is causing 'undefined columns selected' error when using subset()确定使用子集()时哪个列名导致“未定义的列选择”错误
【发布时间】:2015-12-10 19:56:35
【问题描述】:

我正在尝试从一个非常大的数据框中子集一个大数据框,使用

data.new <- subset(data, select = vector)

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

Error in `[.data.frame`(x, r, vars, drop = drop) : 
  undefined columns selected

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

【问题讨论】:

  • which(! vector %in% names(x) ) ?

标签: r subset


【解决方案1】:

找出向量中不是%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 中示例代码的最后几行显示了类似的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-16
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 2014-07-03
    • 2012-10-27
    相关资源
    最近更新 更多