我试图通过为每个文件分配不同的变量名来将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]))
}
由于
答案 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()的输出是一个字符串,不能赋值。