【发布时间】:2017-06-07 12:49:42
【问题描述】:
我正在导入大约 140 个大型数据集。我正在尝试构建一个函数来导入这些数据集并使用 QQYYYY(季度,年份)标识符重命名它们。到目前为止,我拥有的(简化的)代码如下:
orig.first <- 'hist.dta_'
file.type <- '.txt'
clean.data <- function(qqyyyy) {
data.file <- paste(orig.first,qqyyyy,file.type,sep="")
origfile_ <<- read.table(data.file, sep="|", header=FALSE,
colClasses=origclass, quote="")
}
目前,这可以全局导入数据集“hist.dta_Q11999.txt”,但是,它将使用名称“origfile_”导入它。我想将 Q11999(代表 1999 年第一季度)连接到 origfile_ 上,使其变为“origfile_Q11999”。有人可以让我知道实现这一目标的干净方法吗?
【问题讨论】:
-
在全局命名空间中创建黑客对象通常会导致您希望永远不会踏入的深邃黑暗的道路。您是否有不想将它们读入列表或单独环境的原因?
-
我不知道那些深邃的黑暗道路的尽头是什么;你会如何建议这样做?我计划将这些数据集连接成一个大型时间序列数据集进行分析。
-
所以您确实想将它们读入列表然后处理该列表,可能使用
do.call(rbind, yourlistname)。 SO上有很多已回答的问题演示了如何做到这一点,我和hrbrmstr都厌倦了回答或搜索它们,所以我们认为你应该先努力搜索。 -
关于 SO 的文章几乎不计其数,用于迭代文件并绑定到一个巨大的数据框。这里有两个例子github.com/hrbrmstr/rstudioconf2017#research