Error in read.fwf when header=TRUE

帅比萌擦擦* 提交于 2019-12-07 18:19:42

问题


I have simulated data that looks like this:

LastName   Date      email                                                    CreditCardNum   AgeZip  Amount
Paul       21/02/14  Aliquam.fringilla@dolordapibus.co.uk                     4241033422900360 6738851$14.39
Bullock      2/7/2014adipiscing.fringilla@lectusjusto.org                     5178789953524240 3336538$498.31
Mcmahon     11/5/2013lobortis.ultrices@lacus.org                              5389589582467450 7734302$92.44
Walters    25/09/13  consectetuer.cursus.et@sitamet.org                       5157094536097720 7794007$206.60
Franco     17/06/13  et@disparturientmontes.ca                                 345477952996264 2415873$89.12

and this is how I'm attempting to import it into R, with headers:

w <- c(11,10,57,16,3,5,8)
df <- read.fwf("data.txt",widths=w,stringsAsFactors=F)
names(df) <- df[1,]; df <- df[-1,]

The reason I'm not using header=T is that it gives me the error:

Error in read.table(file = FILE, header = header, sep = sep, row.names = row.names,  :  more columns than column names

which just isn't true. I know the widths (w) are correct. So where is this error coming from? My solution works fine, I'd just like to understand what's happening.


回答1:


If you specify header=TRUE, then, as per ?read.fwf, you must ensure that the column names are separated by sep. The default is for names to be separated by \t (the tab character) and this must not be true for your data.

The following works just fine:

w <- c(11, 10, 57, 16, 3, 5, 8)

read.fwf(widths=w, header=TRUE, sep='|', 
file=textConnection('LastName   |Date      |email                                                    |CreditCardNum   |Age|Zip  |Amount
Paul       21/02/14  Aliquam.fringilla@dolordapibus.co.uk                     4241033422900360 6738851$14.39
Bullock      2/7/2014adipiscing.fringilla@lectusjusto.org                     5178789953524240 3336538$498.31
Mcmahon     11/5/2013lobortis.ultrices@lacus.org                              5389589582467450 7734302$92.44
Walters    25/09/13  consectetuer.cursus.et@sitamet.org                       5157094536097720 7794007$206.60
Franco     17/06/13  et@disparturientmontes.ca                                 345477952996264 2415873$89.12'))


来源:https://stackoverflow.com/questions/21592616/error-in-read-fwf-when-header-true

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!