我有一堆遵循命名方案的csv文件:est2009US.csv.
我正在将它们读入R如下:
myFiles <- list.files(path="~/Downloads/gtrends/", pattern = "^est[[:digit:]][[:digit:]][[:digit:]][[:digit:]]US*\\.csv$")
myDB <- do.call("rbind", lapply(myFiles, read.csv, header = TRUE))
Run Code Online (Sandbox Code Playgroud)
我想找到一种方法来创建一个新变量,对于每个记录,该变量都填充了记录来自的文件的名称.
你能避免通过使用指定的文件名以每列匿名函数循环两次data.frame在同一个lapply您用来阅读的CSV.
myDB <- do.call("rbind", lapply(myFiles, function(x) {
dat <- read.csv(x, header=TRUE)
dat$fileName <- tools::file_path_sans_ext(basename(x))
dat
}))
Run Code Online (Sandbox Code Playgroud)
我删除了目录和文件扩展名. basename()返回文件名,不包括目录,并tools::file_path_sans_ext()删除文件扩展名.
| 归档时间: |
|
| 查看次数: |
5674 次 |
| 最近记录: |