实际上我在一个文件夹中有很多txt文件,然后我列出了一个列表然后将它们放在一起。到现在为止还挺好。可以说我有这样的文件名" 1a" " 1B" "图2a" "图3b"我从每个文件中得到一个列,并在最后创建一个数据框。
我现在不能做的是将文件名作为我最终数据框的列名。让我们说我从" 1a"我想在最终数据框中将其命名为1a。
无论如何都要这样做?
这是名字
> head(filelist)
[1] "./1a.txt" "./1b.txt" "./2a.txt" "./2b.txt" "./3a.txt" "./3b.txt"
答案 0 :(得分:1)
你可能不想从数字开始,因为你的名字就是我的建议:
# create example vector of file names for example
myFiles <- c("./1a.txt", "./1b.txt", "./2a.txt",
"./2b.txt", "./3a.txt", "./3b.txt")
# get a vector of filenames
myFiles <- list.files(<filePath>)
# paste the word file in front:
myFiles <- paste0("file.", gsub("\\./(.*)\\.txt$", "\\1", myFiles))
# add names to your data.frame columns:
names(df) <- myFiles
正则表达式“\ ./(。*)\ .txt $”可细分如下:
有关正则表达式精彩世界的更多信息,请查看here。此外,这个链接在SO链接中的site是我学到很多东西的地方。
您必须确保名称的顺序和列的顺序相匹配,但是根据您的描述,听起来您已经拥有此功能。
如果包含文件的列表是命名列表,则事件应该更容易:
names(df) <- paste0("file.", names(fileList))