如果这是一个微不足道的问题,请道歉。我看到其他人喜欢它,例如:How can I turn a part of the filename into a variable when reading multiple text files into R?,但我似乎仍有一些麻烦......
我获得了50000个.txt文件。每个文件包含一个观察(单行数据),其中包含12个变量(列数)。每个.txt文件的名称都相当规律。具体来说,每个.txt文件的末尾都有一个代码,表示跨三维的观察类型。该代码的一个例子是' VL-VL-NE'或者' VL-M-N'或者' H-H-L' (不包括撇号)。因此,文件名的示例可以是“我喜欢使用-R-20_01_2016-VL-VL-NE.txt'。
我的问题是,当我导入R时,我想在实际向量本身的.txt文件的末尾包含此代码,即,我想在表的末尾添加另外三个变量(列)对应于文件名末尾的三部分代码。
非常感谢任何帮助。
答案 0 :(得分:0)
因为每个文件中的列数完全相同,为什么不使用在特定目录中查找所有.txt文件的循环将它们导入R?
df <- c()
for (x in list.files(pattern="*.txt")) {
u<-read.csv(x, skip=6)
u$Label = factor(x) #A column that is the filename
df <- rbind(df,u)
}
您会注意到文件名本身就是一个列。一旦所有内容都进入R,使用regex
函数从文件名列(df$Label
)中提取所需的确切元素应该相当容易。