我正在尝试使用read.csv()在R(在linux下)读取CSV文件。函数完成后,我发现R中读取的行数小于CSV文件中的行数(由wc -l获得)。此外,每次我读取特定的CSV文件时,总是会跳过相同的行。我检查了CSV文件中的格式错误,但一切看起来都不错。
但是如果我将跳过的行提取到另一个CSV文件中,那么R就可以读取该文件中的非常行。
我无法找到我的问题所在的任何地方。非常感谢任何帮助。
答案 0 :(得分:11)
以下是使用count.fields
确定查看位置并可能应用修补程序的示例。你有一个适度数量的行,23'字段'宽度:
> table(count.fields("~/Downloads/bugs.csv", quote="", sep=","))
2 23 30
502 10 136532
> table(count.fields("~/Downloads/bugs.csv", sep=","))
# Just wanted to see if removing quote-recognition would help.... It didn't.
2 4 10 12 20 22 23 25 28 30
11308 24 20 33 642 251 10 2 170 124584
> which(count.fields("~/Downloads/bugs.csv", quote="", sep=",") == 23)
[1] 104843 125158 127876 129734 130988 131456 132515 133048 136764
[10] 136765
我看了23:
txt <-readLines("~/Downloads/bugs.csv")[
which(count.fields("~/Downloads/bugs.csv", quote="", sep=",") == 23)]
他们有octothorpes(&#34;#&#34;,哈希标志),这是R数据用语中的注释字符。
> table(count.fields("~/Downloads/bugs.csv", quote="", sep=",", comment.char=""))
30
137044
所以....在read.table
中使用这些设置,你应该&#34;好的去#34;。