我有大约10,000行的逗号分隔数据集。在执行read.csv时,R创建的数据帧行少于原始文件。它排除/拒绝了200行。当我在Excel中打开csv文件时,该文件看起来还可以。该文件的行分隔符和字段分隔符格式正确(根据Excel进行的解析)。
我已经确定了文件中被拒绝的行号,但是无法通过浏览它们来确定原因。
是否有任何方法可以查看日志或包含R拒绝这些记录的原因的信息?
OP表示问题是由CSV文件中的引号引起的。
当CSV文件中的记录未加引号时,只有少数记录包含引号。可以使用中的quote=""
选项打开文件read.csv
。这将禁用引号。
data <- read.csv(filename, quote="")
另一个解决方案是从文件中删除所有引号,但这也会导致数据修改(您的字符串不再包含任何引号),并且会给您的字段包含逗号带来问题。
lines <- readLines(filename)
lines <- gsub('"', '', lines, fixed=TRUE)
data <- read.csv(textConnection(lines))
一种稍微安全些的解决方案,它只会在逗号前后不删除引号:
lines <- readLines(filename)
lines <- gsub('([^,])"([^,])', '\\1""\\2', lines)
data <- read.csv(textConnection(lines))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句