全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3031 7
2012-05-01
悬赏 10 个论坛币 已解决
部分数据如下,每一行的长度都不一样,直接read.table会提示

> x=read.table("racing.txt")

错误于scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  :   3行没有13元素

racing.zip
大小:(1.27 KB)

 马上下载

本附件包括:

  • racing.txt


谢谢高手指点~




最佳答案

epoh 查看完整内容

ywh兄建议的小修改如下: fileID
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-5-1 08:48:20
ywh兄建议的小修改如下:
fileID <- file("racing.txt",open="rt")
nFields <- count.fields(fileID)
mat <- matrix(nrow=length(nFields),ncol=max(nFields))
invisible(seek(fileID,where=0,origin="start",rw="read"))  #81 x 19 NA matrix
for(i in 1:nrow(mat) ) {
   mat[i,1:nFields] <-scan(fileID,what=double(),nlines=1,quiet=TRUE)
}
close(fileID)
df <- as.data.frame(mat)
df

###################
由于你的data matrix,每个row差异很大
若是第一个row是最长的,那好办
read.csv("racing1.csv",na.strings='',header=FALSE)
racing1.csv
racing1.rar
大小:(1.12 KB)

 马上下载

本附件包括:

  • racing1.csv



##################
要不然就类似unbalanced data: '.' or 'NA'
racing.csv
racing.rar
大小:(1.14 KB)

 马上下载

本附件包括:

  • racing.csv


race= read.csv("racing.csv",na.strings='.',header=FALSE)
#or replace these by zeros:
race[is.na(race)] <- 0
race
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-5-1 10:00:53
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-5-1 10:38:38
可以用read.fwf来按指定的列读取
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-5-1 14:37:11
恩,谢谢楼上各位!
借鉴epoh兄的方法,先转成csv再读取,呵呵,受教啦~~
再次谢谢各位~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-5-1 14:39:19
另外在读取过程中如果碰到“在读取'file.csv'时遇到了不完全的最后一行”的情况
可以把数据重新复制粘贴成一个新的csv文件,再读这个文件就好了

给后来的同学作参考,呵呵
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群