R使用粘贴函数作为子集函数中的对象

时间:2018-04-04 15:31:44

标签: r automation subset paste

我是R的新人。我一直在阅读很多论坛,但我无法找到解决方案,而且我觉得它不会那么困难。

我希望R读取数据文件并创建包含所有数据的数据帧。然后,我想创建一个包含原始子集的新数据帧。对于一个数据文件,它很容易,我使用的代码如下(datainfo是一个带有变量信息的向量):

var1 <- read.fwf("file_var1", widths = datainfo$lenght, col.names= datainfo$names)
var1_5 <- subset(var1, ZONE==5)

工作正常。但现在我想用大量数据文件(file_var1,file_var2,file_var3 ....)执行相同的过程。出于此目的,我尝试使用FOR,在粘贴和分配函数的帮助下:

for (i in c(1:10)) {
      assign(paste("var", i, sep=""), read.fwf(paste("file_var", i, sep=""), widths = datainfo$lenght, col.names= datainfo$names))  
      assign(paste("var", i, "_5", sep=""), subset(paste("var", i, sep=""), ZONE==5)  
    }

进入FOR的第一行工作正常。但第二行失败了。错误是:

Error in subset.default(paste("var", i, sep = ""), ZONE == 5) : 
  object 'ZONE' not found

我注意到一个可能的问题可能是粘贴函数返回一个字符向量,然后子集函数不会将其作为数据帧读取。我可以在子集函数中使用粘贴函数来引用R对象吗?或者还有其他功能可以做到这一点吗?

非常感谢大家!

0 个答案:

没有答案