我正在尝试将制表符分隔列表导入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给出了正确的数字。
非常感谢任何想法!
答案 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])
)