【发布时间】:2020-06-05 19:52:55
【问题描述】:
我在 zip 文件 Patrimonio.zip 中有 4 个 csv 文件
a.csv
b.csv
c.csv
z.csv
我想从 zip 中读取这些文件并在 R 中导入 4 个不同的数据框。在文件 csv 中,sep 是“|”。
有没有一种方法可以创建 4 个不同的数据帧,并且在没有循环的情况下使用循环?
【问题讨论】:
我在 zip 文件 Patrimonio.zip 中有 4 个 csv 文件
a.csv
b.csv
c.csv
z.csv
我想从 zip 中读取这些文件并在 R 中导入 4 个不同的数据框。在文件 csv 中,sep 是“|”。
有没有一种方法可以创建 4 个不同的数据帧,并且在没有循环的情况下使用循环?
【问题讨论】:
你可以这样做:
unzip('Path/to/Patrimonio.zip')
file_names <- list.files(pattern = "\\.csv$", full.names = TRUE)
list_files <- lapply(file_names, read.csv, sep = "|")
这将为您提供list_files 中的数据框列表,您可以将它们保存在列表中,或者如果您想要单独的数据框,我们可以命名列表并使用list2env 分别获取所有数据框。
names(list_files) <- sub("\\.csv", "", basename(file_names))
list2env(list_files, .GlobalEnv)
【讨论】:
pattern 参数并将第二行替换为file_names <- list.files(full.names = TRUE)