【问题标题】:How read multiple csv file from zip and import in different dataframe in R?如何从 zip 读取多个 csv 文件并导入 R 中的不同数据帧?
【发布时间】: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 个不同的数据帧,并且在没有循环的情况下使用循环?

【问题讨论】:

    标签: r import zip


    【解决方案1】:

    你可以这样做:

    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)
    

    【讨论】:

    • 嗨,我如何修改上面的代码以从 zip 读取 cvs 而无需提取文件 .csv?
    • @Andrea 你的意思是你想阅读所有的文件,而不仅仅是那些以“csv”结尾的文件?如果是,您可以删除pattern 参数并将第二行替换为file_names &lt;- list.files(full.names = TRUE)
    • 我想在 zip 中读取 csv 文件而不提取这些文件。并使用文件名创建新名称 no 的数据框
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多