我模拟的数据如下:
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这就是我试图把它导入R中的方法,它的标题是:
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,]我不使用header=T的原因是它给了我错误:
Error in read.table(file = FILE, header = header, sep = sep, row.names = row.names, : more columns than column names但事实并非如此。我知道宽度(w)是正确的。那么这个错误是从哪里来的呢?我的解决方案很好,我只是想知道发生了什么。
发布于 2014-02-06 03:04:15
如果您指定了header=TRUE,那么,按照?read.fwf,您必须确保列名由sep分隔。默认情况下,名称将由\t (制表符)分隔,对于数据来说,这不一定是正确的。
以下功能很好:
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
复制相似问题