2016-05-17 44 views
0

我试图通过为每个文件分配不同的变量名来读取100个文件成R,但我得到了以下错误消息的sprintf分配给每个读文件到不同的变量

错误(“read_data_%d”, 1)< - readRDS(sprintf的( “/家/数据/桌面/ 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])) 
} 

感谢

回答

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

我回应DGKarlsson的观点:将这些数据存储在列表中可能更容易;但是,如果你真的想为每个文件的输出单独的对象(例如,如果每个文件是一组不同的列的数据帧),您可以使用assign()函数:

assign(variable_name,variable_value) 

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