【问题标题】:Skip lines containing only commas in csv files跳过 csv 文件中仅包含逗号的行
【发布时间】:2016-04-18 12:49:07
【问题描述】:

如何读取 csv 文件以跳过仅包含逗号的行?

Skip all leading empty lines in read.csv 涵盖了这些行位于文件开头的情况的几个想法,但是更通用的解决方案呢?

【问题讨论】:

  • @csgillespie 标题说“只有逗号”所以是一个空行。
  • @csgillespie:不,我想删除所有仅包含逗号的行 - 例如没有值。
  • 我猜这将是最容易读取整个文件然后删除这些行的方法。
  • @lmo:是的,但是在读取因子变量时,级别已经搞砸了。我知道,我可以将其读取为字符串和删除线,转换为因子 - 但这需要更多时间。
  • 在使用read.csv 或朋友时始终使用 as.is=TRUE 是个好主意。这会将非数字列读取为字符串。您可以在以后执行转换为因子。

标签: r csv


【解决方案1】:

我不确定性能,但您可以在 readLines(), grepl()writeLines() 函数的帮助下做到这一点:

假设输入文件是 A.csv,输出 CSV 文件(虽然不是必须的)不包含逗号是 B.csv。

test <- readLines('A.csv')

test2 <- test[!grepl(",",test)] 

您可以使用test2 变量或将其保存到 B.csv:

writeLines(test2,'B.csv')

【讨论】:

  • 它有点重,但似乎可以胜任。这个问题可能没有理想的答案,所以我接受了这个答案。 :)
猜你喜欢
  • 2016-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-27
  • 2021-12-28
相关资源
最近更新 更多