为了账号安全,请及时绑定邮箱和手机立即绑定

将多个CSV文件读入单独的数据框

将多个CSV文件读入单独的数据框

翻过高山走不出你 2019-08-31 16:08:02
假设我们在目录C:\ R \ Data中有文件file1.csv,file2.csv,...和file100.csv,我们希望将它们全部读入单独的数据框(例如file1,file2,...和file100)。这样做的原因是,尽管具有相似的名称,但它们具有不同的文件结构,因此将它们放在列表中并不是那么有用。我可以使用lapply但返回包含100个数据帧的单个列表。相反,我想在全球环境中使用这些数据框。如何直接将多个文件读入全局环境?或者,或者,如何将数据框列表的内容解压缩到其中?
查看完整描述

3 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

快速草案,未经测试:

  1. 使用list.files()aka dir()动态生成文件列表。

  2. 这将返回一个向量,只是在for循环中沿向量运行。

  3. 读取第i个文件,然后使用assign()将内容放入新变量file_i

这应该为你做的伎俩。


查看完整回答
反对 回复 2019-08-31
?
Qyouu

TA贡献1786条经验 获得超11个赞

谢谢大家的回复。


为了完整性,这里是我加载任意数量(制表符)分隔文件的最终答案,在这种情况下有6列数据,其中第1列是字符,2是因子,余数是数字:


##Read files named xyz1111.csv, xyz2222.csv, etc.

filenames <- list.files(path="../Data/original_data",

    pattern="xyz+.*csv")


##Create list of data frame names without the ".csv" part 

names <-substr(filenames,1,7))


###Load all files

for(i in names){

    filepath <- file.path("../Data/original_data/",paste(i,".csv",sep=""))

    assign(i, read.delim(filepath,

    colClasses=c("character","factor",rep("numeric",4)),

    sep = "\t"))

}


查看完整回答
反对 回复 2019-08-31
  • 3 回答
  • 0 关注
  • 716 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信