我试图通过为每个文件分配不同的变量名来将100个文件读入R,但我收到以下错误消息
在sprintf(“读取_数据_%d”,1)〈- readRDS(sprintf(“/home/data/Desktop/读取_数据_%s.rds”,:赋值目标扩展到非语言对象
这是我的代码
for (i in 1:100)
{
sprintf("read_data_%d", [i]) <- readRDS(sprintf("/home/data/Desktop/read_data_%s.rds", filenames[i]))
}
谢谢
3条答案
按热度按时间2eafrhcq1#
对于大多数应用程序,将所有数据存储在列表中会更容易:
然后,您可以使用以下命令访问文件编号
i
中的数据rsaldnfx2#
我赞同DGKarlsson的观点,将这些数据存储在列表中可能更容易;但是,如果确实希望为每个文件的输出生成单独的对象(例如,如果每个文件都是具有不同列集的数据框),则可以使用assign()函数:
原始解决方案的问题在于,它试图为sprintf()的输出赋值;但是,sprintf()的输出是一个字符串,不能赋值。
pbgvytdp3#
如果要将一系列文件读入单独的对象中,则可以设置一个具有两列的数据框:新对象名称及其文件路径。然后使用pmap遍历每一行,并将每个文件分配给单独的对象: