read.table创建的行太少,但readLines的编号正确

evt*_*evt 5 r

我正在尝试将制表符分隔列表导入R.

它长81704行.但是,read.table只创建31376.这是我的代码:

population <- read.table('population.txt', header=TRUE,sep='\t',na.strings = 'NA',blank.lines.skip = FALSE)
Run Code Online (Sandbox Code Playgroud)

没有#评论任何东西.

以下是前几行:

[1] "NAME\tSTATENAME\tPOP_2009"      "Alabama\tAlabama\t4708708"      "Abbeville city\tAlabama\t2934"  "Adamsville city\tAlabama\t4782"
[5] "Addison town\tAlabama\t711"
Run Code Online (Sandbox Code Playgroud)

当我读它时,readLines给出了正确的数字.

任何想法都非常感谢!

nei*_*fws 16

没有看到输入文件很难诊断,但通常的嫌疑人是引号和评论字符(即使你认为后者没有).你可以试试:

quote = "", comment.char = ""
Run Code Online (Sandbox Code Playgroud)

作为read.table()的参数,看看是否有帮助.


Mar*_*rek 8

检查count.fields文件中的内容:

n <- count.fields('population.txt', sep='\t', blank.lines.skip=FALSE)
Run Code Online (Sandbox Code Playgroud)

然后你可以检查一下

length(n) # should be 81705 (it count header so rows+1), if yes then:
table(n) # show you what's wrong
Run Code Online (Sandbox Code Playgroud)

然后是您readLines的文件并检查具有错误字段数的行.(例如 x<-readLines('population.txt'); head(x[n!=6]))