当前位置: 首页 > 知识库问答 >
问题:

如何一次导入多个.csv文件?

朱岳
2023-03-14
read.delim(file="filename", header=TRUE, sep="\t")

效率不是很高。

共有1个答案

宋唯
2023-03-14

类似于以下内容的结果应该是每个数据帧作为单个列表中的一个单独元素:

temp = list.files(pattern="*.csv")
myfiles = lapply(temp, read.delim)

这假设您将这些CSV放在一个目录中--即您当前的工作目录--并且所有CSV都具有小写扩展名.csv

如果您想将这些数据帧组合到一个数据帧中,请参阅其他答案中的解决方案,使用do.call(rbind,...)dplyr::bind_rows()data.table::rbindlist()

如果您确实希望每个数据帧都在一个单独的对象中,即使这通常是不可取的,您可以使用assign执行以下操作:

temp = list.files(pattern="*.csv")
for (i in 1:length(temp)) assign(temp[i], read.csv(temp[i]))

或者,在不使用assign的情况下,为了演示(1)如何清理文件名和(2)如何使用list2env,您可以尝试以下操作:

temp = list.files(pattern="*.csv")
list2env(
  lapply(setNames(temp, make.names(gsub("*.csv$", "", temp))), 
         read.csv), envir = .GlobalEnv)

但是,通常最好将它们留在一个列表中。

 类似资料:
  • 我已经用python从网上下载了大约100个csv文件。每个文件都是一年中的一个月,所以我实际上是在下载时间序列数据。 现在我想把所有这些csv文件按时间顺序放在一个csv文件中,我不知道如何一个接一个地做这个? 此外,我应该注意到,除了第一次,我希望在每次放入新的csv文件时删除标题。 这将解释为什么当你看到我的数据时: 谢谢你的帮助,谢谢

  • 问题内容: 更新 在我发布此问题之后的第二秒,由于对结果查询的语法突出显示,我看到了出了什么问题:该字符串未以闭合斜线开头。现在我将其更改为: 但是,这提出了一个新问题:为什么PDO对象没有为此向我吐出错误?手动执行查询肯定会返回一个错误,指出没有名为的字段,最后是逗号。为什么我没有收到任何错误?有任何想法吗? PS:关于解决我的问题的SO语法突出显示方面有什么想法吗?:-) 我将原始问题留作参考

  • 我遇到问题< code >没有要连接的对象。我不能进口。csv文件,将它们连接成一个数据帧。我在用熊猫。旧答案没有帮助我,所以请不要标记为重复。 文件夹结构就是这样 < li >不起作用

  • 问题内容: 我知道一次插入多个数据效率更高: 在golang中该怎么做? 使用字符串拼接,但这不是很好。db.Prepare更安全吧? 我需要一个功能更安全,更高效的函数,一次插入多个数据。 问题答案: 为什么不这样呢?(在此处编写但未进行测试,因此可能存在语法错误):

  • 我想从一个目录中读取几个csv文件到pandas中,并将它们连接到一个大的数据帧中。不过我还没弄明白。以下是我目前掌握的情况: 我想我需要在for循环中得到一些帮助???

  • 我试图将一个目录中的几个csv文件读入pandas,并将它们连接到一个大数据帧中,但出现以下错误: 这是我的密码 我不知道为什么它不起作用。我试图用chmod解决这个问题,但一切都变了