我有一个数据集列表。每个数据集包含一个月的一些数据。数据跨越多年,因此我每年有 12 个数据集。该数据最初是一堆 Excel 文件。我已按照此建议导入了之前转换为 .csv 的所有文件,即:
datalist <- list()
files <- list.files(pattern="\\.csv$")
for(file in files) {
stem <- gsub("\\.csv$","",file)
datalist[[stem]] <- read.csv(file)
}
所以我最终得到了一个datalist
包含我所有数据集的列表。
现在,我的问题是只有文件名包含收集数据的每个部分的实际月份和年份,所以我想从每个数据集名称中获取名称和年份,并将它们归入该数据框的两个新列中:“年份”和“月”。
我保存为数据框名称的所有文件名都遵循以下结构:[月]_[年]_[ ...一些其他文本],例如“August_2012_foo_bar”。所以我想我会使用正则表达式先获取月份然后年份。我的代码存根是:
for(dataset in names(datalists)) {
name <- dataset
month <- strapply(name,"^([^_]*).*$")
...?
}
正则表达式"^([^_]*).*$"
抓取下划线之前的任何内容,即月份。当我需要将抓取的月份分配给数据集的新列时,我遇到了困难。我已经尝试过assign
和cbind
,但没有运气。
最后,我想将所有这些数据集垂直合并为一个。
谢谢你的帮助!