【发布时间】:2018-02-01 17:39:07
【问题描述】:
我希望从我桌面上的一个文件夹中读取多个 .csv 文件,将所有这些 .csv 文件合并到一个 data.frame 中,并创建一个包含每个文件名称的列。
我试过了:
my.path <- "C:/Users/JB/Desktop/RawFiles/"
filenames <- paste(my.path, list.files(path=my.path), sep="/")
my.df <- do.call(rbind, lapply(filenames, function(x) cbind(read.csv(x), name=strsplit(x,'\\.')[[1]][1])))
但是,my.dt$name 不包含 .csv 的文件名。相反,它包含文件的位置。例如,head(my.dt, 3) 产生:
name
1 C:/Users/JB/Desktop/RawFiles//Analysis_01122016
2 C:/Users/JB/Desktop/RawFiles//Analysis_01122016
3 C:/Users/JB/Desktop/RawFiles//Analysis_01122016
我怎样才能编辑这个my.dt$name 只生成文件名?我的预期输出是:
name
1 Analysis_01122016
2 Analysis_01122016
3 Analysis_01122016
谢谢!
【问题讨论】:
-
strplit在.期间分裂并占据第一部分。所以它所做的只是删除扩展名(或者更多,如果任何文件名中有句点) -
另外,您的
sep = "/"似乎添加了一个额外的斜线。
标签: r