从R和中的多个csv文件中提取单个单元格值

时间:2017-10-02 14:52:34

标签: r excel csv

我有500 csv。数据看起来像这样的文件:

sample data

我想为每个csv文件提取一个单元格(例如B4或 0.477 ),并将这些值组合成单个csv。关于如何轻松完成这项工作的一些建议是什么?

2 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情

all.fi <- list.files("/path/to/csvfiles", pattern=".csv", full.names=TRUE)  # store names of csv files in path as a string vector
library(readr)  # package for read_lines and write_lines
ans <- sapply(all.fi, function(i) { eachline <- read_lines(i, n=4)  # read only the 4th line of the file
                        ans <- unlist(strsplit(eachline, ","))[2]  # split the string on commas, then extract the 2nd element of the resulting vector
                        return(ans) })
write_lines(ans, "/path/to/output.csv")

答案 1 :(得分:0)

我无法添加评论。所以,我会在这里写下我的评论。

由于您的数据非常庞大且单独加载数据非常困难,请尝试以下操作:Importing multiple .csv files into R。它类似于问题的第一部分。第二部分,试试这个:

您可以将数据保存为data.frame(与@Bruno Zamengo的评论一样),然后您可以在R中使用selectmerge函数。然后,您可以轻松地将它们合并到单个csv文件中。使用selectmerge函数,您可以选择所需的所有值,然后将它们组合在一起。我在我的项目中使用了这个想法。不要忘记使用lapply