【发布时间】:2011-07-21 18:07:47
【问题描述】:
我需要从一个文件夹中将许多 csv 文件读入数据帧。 csv 文件名的格式为 fxpair-yyyy-mm.csv(例如 AUDJPY-2009-05.csv)。我想读取所有 csv 文件并创建 fxpair.yyyy.mm
形式的数据框我无法在循环中创建用于从 read.csv 语句分配的数据框名称
filenames <- list.files(path=getwd())
numfiles <- length(filenames)
#fx.data.frames to hold names that will be assigned to csv files in csv.read
fx.data.frames <- gsub(pattern="-",x=filenames,replacement=".")
fx.data.frames <- gsub(pattern=".csv",x=fx.data.frames,replacement="")
i <-1
for (i in c(1:numfiles)){
filenames[i] <- paste(".\\",filenames[i],sep="")
fx.data.frames[i] <- read.csv(filenames[i], header=FALSE)
}
csv.read 似乎工作正常,但我无法按照我想要的方式创建数据框对象。我只是想要一些方法来命名基于文件名以 fxpair.yyyy.mm 格式读取的数据帧。
我错过了什么明显的东西吗?谢谢你的帮助!!
【问题讨论】:
-
另见另一个涉及将多个文本文件读入 R goo.gl/jM1J7 的 stackoverflow 问题。请记住,在 R 中处理数据帧列表比将每个文件写入不同的数据帧更容易,因为处理变得更容易。
-
附注:在 R 中你不必初始化 i,你可以使用
for (i in 1:numfiles)并删除c。更好的是,只需在循环中使用for (i in filenames),就可以省去很多麻烦。 -
很好的提示,谢谢你们!很有帮助。