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

时间:2011-05-02 06:47:22

标签: r

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

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

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

没有#评论任何东西。

以下是前几行:

[1] "NAME\tSTATENAME\tPOP_2009"      "Alabama\tAlabama\t4708708"      "Abbeville city\tAlabama\t2934"  "Adamsville city\tAlabama\t4782"
[5] "Addison town\tAlabama\t711"

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

非常感谢任何想法!

2 个答案:

答案 0 :(得分:15)

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

quote = "", comment.char = ""

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

答案 1 :(得分:8)

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

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

然后你可以检查

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

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