我浏览了一下,但在R studio中找不到我的问题的答案。
所以也许有人有时间和善意,帮助我。
我有一个包含106个txt文件的文件夹,我希望提取数据。
因此,我想构建一个包含两行的.csv。第一行应包含文件名,第二行应包含数字,whis是第一行的最后一个“字”。
每个文档的第一行看起来像“y的文档x”。因此第二行应包含y。请注意,x可能包含一位,两位或三位数字。 如果这不可能,我会很高兴,如果.csv可以包含第2行的第一行。
答案 0 :(得分:0)
这个解决方案确实涉及很多步骤,所以我认为它应该得到一个答案,但我希望你尝试更多地改进你的问题,以确保我回答你想要问的问题。例如,你说你想要一个带有两个行的csv,但是根据你的描述,我认为你实际上意味着你想要两个列。我在下面的解决方案中对此做了一些猜测。
这里有一些基本步骤:
fp = tools::list_files_with_exts(dir='.', ext='txt', full.names = TRUE)
fn = tools::list_files_with_exts(dir='.', ext='txt', full.names = FALSE)
fn = tools::file_path_sans_ext(fn)
items = length(fp) # get our iterator length for files
lastword = as.character(NULL)
for(i in 1:items) { # iterate through files
line = readLines(fp[i])[1] # read in lines and select the first
words = strsplit(line, ' ')[[1]] # split string into vector on spaces
word = tail(words, 1) # get the last word of the vector
lastword = c(lastword, word) # combine with lastword list
}
df = data.frame(filename=fn, lastword)
write.csv(df, 'my.csv')