如何解析Read?表中的空白列?

如何解析Read?表中的空白列?,r,read.table,R,Read.table,我需要它如下,见第6行 dat="mpg cyl disp hp drat wt qsec vs am gear carb 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1

我需要它如下,见第6行

 dat="mpg cyl  disp  hp drat    wt  qsec vs am gear carb
       21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
       22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
       21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
                                                         2"
我自己解决了

    >  read.table(text=dat,fill=T,header=TRUE)
   mpg cyl disp  hp drat    wt  qsec vs am gear carb
1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
4 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
5  2.0  NA   NA  NA   NA    NA    NA NA NA   NA   NA


>  read.table(text=dat,fill=T,header=TRUE)
   mpg cyl disp  hp drat    wt  qsec vs am gear carb
1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
4 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
5  NA   NA  NA   NA    NA    NA NA NA   NA   NA    2

您可能正在处理固定宽度格式的文件吗?如果是这样,请使用
read.fwf
。在
read.table
中,您不指定任何
sep
,这就是为什么第6行从第1列开始。
read.fwf(file=textConnection(dat),fill=TRUE,skip=1,widths=c(12,4,6,4,5,6,6,3,3,5,5)) -> r

unlist(strsplit(y,split="\\s+")) -> colnames(y)   
unlist(strsplit(y,split="\\s+")) -> colnames(r)