"更多列比列名称更多"错误意味着?

时间:2014-06-04 02:39:26

标签: r csv read.table import-from-csv

我正在尝试从IRS读取一个.csv文件,它似乎没有以任何奇怪的方式格式化。

我正在使用read.table()函数,我过去曾多次使用它,但这次它不能正常工作;相反,我得到这个错误:

data_0910<-read.table("/Users/blahblahblah/countyinflow0910.csv",header=T,stringsAsFactors=FALSE,colClasses="character")

Error in read.table("/Users/blahblahblah/countyinflow0910.csv",  : 
  more columns than column names

为什么要这样做?

作为参考,.csv文件位于:

http://www.irs.gov/uac/SOI-Tax-Stats-County-to-County-Migration-Data-Files

(我需要的是在县到县迁移.csv部分 - 流入或流出。)

5 个答案:

答案 0 :(得分:19)

它使用逗号作为分隔符。因此,您可以设置sep=","或仅使用read.csv

x <- read.csv(file="http://www.irs.gov/file_source/pub/irs-soi/countyinflow1011.csv")
dim(x)
## [1] 113593      9

错误是由某些值中的空格和不匹配的引号引起的。标头中没有空格,因此read.table认为有一列。然后它认为它在某些行中看到多个列。例如,前两行(标题和第一行):

State_Code_Dest,County_Code_Dest,State_Code_Origin,County_Code_Origin,State_Abbrv,County_Name,Return_Num,Exmpt_Num,Aggr_AGI
00,000,96,000,US,Total Mig - US & For,6973489,12948316,303495582

不匹配的引号,例如第1336行(第1335行),它会将read.table与默认的quote参数混淆(但不会read.csv):

01,089,24,033,MD,Prince George's County,13,30,1040

答案 1 :(得分:3)

对于德国人:

你必须在csv文件中将小数点逗号更改为句号(在Excel中:文件 - &gt;选项 - &gt;高级 - &gt;“十进制分隔符”),然后错误就解决了。

答案 2 :(得分:2)

标题#%中有奇怪的字符-或,

答案 3 :(得分:0)

根据数据(例如tsv扩展名),它可能使用制表符作为分隔符,因此您可以将sep = '\t'read.csv一起使用。

答案 4 :(得分:0)

如果您的数据框具有sf个几何列,则可能引发此错误。