我正在尝试从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部分 - 流入或流出。)
答案 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
个几何列,则可能引发此错误。