【问题标题】:Extracting a single cell value from multiple csv files in R and从 R 中的多个 csv 文件中提取单个单元格值和
【发布时间】:2017-10-02 14:52:33
【问题描述】:

我有 500 个 csv。具有如下数据的文件:

sample data

我想为每个 csv 文件提取一个单元格(例如 B4 或 0.477)并将这些值合并到一个 csv 中。关于如何轻松做到这一点有什么建议?

【问题讨论】:

  • 如何每次将一个文件读入data.frame,访问所需的单元格并将其存储在某处?
  • @BrunoZamengo 没有必要阅读所有文件
  • ?read.table。 skip 和 nrows 参数将很有用。您也可以使用scan,它接受这两个(nlines 而不是 nrows)参数,并且调整得更精细。

标签: r excel csv


【解决方案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")

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      相关资源
      最近更新 更多