我有一些我想读入的文件(VI3g 光栅数据)。我想读入的文件的名称保存在一个名为“文件名”的向量中(其中向量的第一个元素是我要读取的第一个文件),以及我要分配给它们的变量名称(其中向量的第一个元素是我要读取的第一个变量的名称)称为“varname”。
filename varname
file1.VI3g variable_xy
file2.VI3G variable_z
... ...
我的方法(有效)如下:
for (i in 1:12) {
assign(varname[i], ReadVI3g(filename[i]))
}
但数据是光栅层。我需要进一步计算的是矢量,因为某些计算不适用于光栅层。所以我的方法是通过 getValues 转换数据,以获取矢量而不是 Rasterlayer。
for (i in 1:12) {
assign(varname[i], ReadVI3g(filename[i]))
varname[i]<- getValues(varname[i])
}
然而,这不起作用。我收到消息:
Error in (function (classes, fdef, mtable) : unable to find an
inherited method for function ‘getValues’ for signature ‘"character",
"missing", "missing"’
我理解这个问题,但我无法找到解决方案。我也尝试用 assign 解决这个问题,但它也不起作用。
并跟进问题:由于我是 R 新手,我倾向于用循环解决很多事情。我知道它效率低下,而且通常有更聪明的解决方案。有没有一种简单的方法可以避免这里的循环?
非常感谢您提前。