【发布时间】:2016-10-29 18:58:31
【问题描述】:
[.data.frame(meuse@data, , x) 中的错误:选择了未定义的列
MWE:
library(automap)
data(meuse)
coordinates(meuse) = ~ x+y
lapply(1:1, function (x) {
automap::autofitVariogram(meuse@data[, x] ~ 1, input_data = meuse)
})
在lapplycall 之外执行meuse@data[,1] 工作正常并返回一个数字向量。
automap::autofitVariogram(meuse@data[, 1] ~ 1, input_data = meuse) 也运行良好。
因此,我预计问题是由lapply 调用引起的。但是,使用我的另一个数据集(SpPointsDaFr)不会导致问题并且运行良好。
更仔细地查看错误消息,我不确定“meuse@data”之后的第二个“逗号”是否总是出现在“子集”错误消息中?
编辑:
另一种不起作用的方法:通过字符串寻址(请注意,我只使用[1:1] 而不是[1] 用于进一步的功能使用)
cols <- names(meuse@data) [1:1]
> lapply(cols, function (x) {
+ automap::autofitVariogram(meuse@data[, x] ~ 1, input_data = meuse)
+ })
【问题讨论】:
-
lapply(... meuse@data[[x]]~1 ...可以工作吗? -
不,返回
Error in .subset2(x, i, exact = exact) : no such index at Level 1