r-在读入和合并多个文件时添加一个变量



我想合并几个文件。以下是我的路径:

allpaths=c("c:datacountry_GM2GM_2020_8.csv","c:datacountry_GM2GM_2020_9.csv","c:datacountry_GM2GM_2020_10.csv","c:datacountry_GM2GM_2020_11.csv","c:datacountry_GM2GM_2020_12.csv")

我写了一个这样的函数:

merge_1 = function(filepath) {
datalist= lapply(filepath,
function(x){read.csv(file = x, 
header = TRUE, 
stringsAsFactors = FALSE)})
Reduce(function(x,y){rbind.fill(x,y)},datalist)
}
data <-merge_1(allpaths) 

然而,我希望,当我阅读每个文件时,我可以同时从文件路径中添加一个带有年份和月份的变量。

例如,对于从";"GM_2020_12.csv";,将具有值"0"的变量相加;2020.12;

如果能给我一些提示,我将不胜感激。到目前为止,我只能想到;突变";在tidyverse包中可能是解决方案,但我还没有找到一个正确的方法将其放入我的函数中。

非常感谢!

您可以在读取数据时添加一个新列,同时使用regex提取年份和月份值。

将功能更改为:

merge_1 = function(filepath) {
datalist= lapply(filepath,function(x) {
transform(read.csv(file = x,header = TRUE, stringsAsFactors = FALSE), 
year_month = sub('.*?(\d+)_(\d+)\.csv$', '\1.\2', x))
})
Reduce(function(x,y){rbind.fill(x,y)},datalist)
}
data <-merge_1(allpaths) 

其中sub从文件名返回年和月的值。

allpaths=c("C:\data\country_GM2\GM_2020_8.csv",
"C:\data\country_GM2\GM_2020_9.csv")
sub('.*?(\d+)_(\d+)\.csv$', '\1.\2', allpaths)
#[1] "2020.8" "2020.9"

相关内容

  • 没有找到相关文章

最新更新