我有一个大约10,000行的逗号分隔数据集.在执行read.csv时,R创建的数据帧行小于原始文件.它排除/拒绝了200行.当我在Excel中打开csv文件时,该文件看起来没问题.该文件格式适用于行分隔符和字段分隔符(根据Excel执行的分析).
我已经确定了我的文件中的行号被拒绝但我无法通过浏览它们来确定原因.
有没有办法查看日志或其中包含R拒绝这些记录的原因?
Jan*_*aan 10
OP表示问题是由CSV文件中的引号引起的.
如果未引用CSV文件中的记录,但只有少数记录包含引号.可以使用quote=""选项打开该文件read.csv.这会禁用引号.
data <- read.csv(filename, quote="")
Run Code Online (Sandbox Code Playgroud)
另一种解决方案是从文件中删除所有引号,但这也会导致修改数据(您的字符串不再包含任何引号),并且会出现包含逗号的字段的问题.
lines <- readLines(filename)
lines <- gsub('"', '', lines, fixed=TRUE)
data <- read.csv(textConnection(lines))
Run Code Online (Sandbox Code Playgroud)
一个稍微更安全的解决方案,它只会在逗号之前或之后删除引号:
lines <- readLines(filename)
lines <- gsub('([^,])"([^,])', '\\1""\\2', lines)
data <- read.csv(textConnection(lines))
Run Code Online (Sandbox Code Playgroud)