?read.table
文档中有如下内容:
数据列的数量是通过查看输入的前五行(或整个文件,如果少于五行),或者通过col.names
的长度来确定的,如果指定并且更长,则可能错误。如果fill
或blank.lines.skip
为真,则可能出现错误,因此在必要时请指定col.names
(如“示例”中所示)。
因此,让我们将col.names
定义为长度为X(其中X是数据集中字段的最大数量),并设置fill = TRUE
:
dat <- textConnection("12223, University
12227, bridge, Sky
12828, Sunset
13801, Ground
14853, Tranceamerica
14854, San Francisco
15595, shibuya, Shrine
16126, fog, San Francisco
16520, California, ocean, summer, golden gate, beach, San Francisco")
read.table(dat, header = FALSE, sep = ",",
col.names = paste0("V",seq_len(7)), fill = TRUE)
V1 V2 V3 V4 V5 V6 V7
1 12223 University
2 12227 bridge Sky
3 12828 Sunset
4 13801 Ground
5 14853 Tranceamerica
6 14854 San Francisco
7 15595 shibuya Shrine
8 16126 fog San Francisco
9 16520 California ocean summer golden gate beach San Francisco
如果字段的最大数量未知,您可以使用漂亮的实用函数count.fields
(我在read.table
示例代码中找到):
count.fields(dat, sep = ',')
max(count.fields(dat, sep = ','))
可能会有帮助的相关阅读:在R中仅读取有限数量的列
read.table
中指定colClasses
参数(最大列数)并与fill = TRUE
结合使用应该可以读取文件。 - Blue Magisterdata.frame
,然后使用rbind
函数将文本文件添加到其中吗? - John Paul