将每个读取文件分配给不同的变量

时间:2016-05-17 12:44:27

标签: r

我试图通过为每个文件分配不同的变量名来将100个文件读入R,但是我收到以下错误消息

  

sprintf中的错误(“read_data_%d”,1)< - readRDS(sprintf(“/ home / data / Desktop / read_data_%s.rds”,:     赋值目标扩展为非语言对象

这是我的代码

for (i in 1:100) 
{
     sprintf("read_data_%d", [i]) <- readRDS(sprintf("/home/data/Desktop/read_data_%s.rds", filenames[i]))
}

由于

2 个答案:

答案 0 :(得分:1)

对于大多数应用程序,将所有数据存储在列表中会更容易:

read_data <- list()
for (i in 1:100)
    read_data[i] <- readRDS(sprintf("read_data_%s.rds", filenames[i]))

然后,您可以使用

访问文件编号i中的数据
read_data[[i]]

答案 1 :(得分:1)

我回应DGKarlsson的观点,即将这些数据存储在列表中可能更容易;但是,如果您确实想为每个文件的输出创建单独的对象(例如,如果每个文件是具有不同列集的数据框),则可以使用assign()函数:

assign(variable_name,variable_value)

原始解决方案的问题在于它试图为sprintf()的输出赋值;但是,sprintf()的输出是一个字符串,不能赋值。