[.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)
})
在meuse@data[,1]
调用之外执行lapply
可以正常工作并返回数字向量。
同样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)
+ })
答案 0 :(得分:0)
我找到了解决方法。在调用laravel
之前对meuse
所需的值进行寻址/子集化,然后将对象autofitVariogram
置于工作状态。
tmp
尝试在函数调用内部进行子集时的错误仍然可供讨论。