我正在尝试使用 read.csv() 在 R(在 linux 下)中读取 CSV 文件。函数完成后,我发现在 R 中读取的行数小于 CSV 文件中的行数(通过 wc -l 获得)。此外,每次我阅读特定的 CSV 文件时,总是会跳过相同的行。我检查了 CSV 文件中的格式错误,但一切看起来都很好。
但是如果我将被跳过的行提取到另一个 CSV 文件中,那么 R 就能够从该文件中读取非常多的行。
我无法在任何地方找到我的问题所在。非常感谢任何帮助。
最佳答案
这是一个使用 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)]
并且他们有八角符号(“#”,井号),在 R 数据用语中是注释字符。
> table(count.fields("~/Downloads/bugs.csv", quote="", sep=",", comment.char=""))
30
137044
所以....在 read.table
中使用这些设置,您应该“一切顺利”。
关于R 编程 : read. csv() 意外跳过行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8568968/