我想在阅读文本时跳过第一行。
raw_data='
编号,性别,序号,民族,籍贯,系部
1,男,20130990,壮族,广西省,旅游系
24,男,20130520,汉族,广东省,经管系
48,女,20131065,汉族,河北省,艺术系,,
49,女,20131066,汉族,湖南省,艺术系,,
50,女,20131067,汉族,广东省,艺术系,,
129,男,20130340,汉族,海南省,经管系
131,男,20130342,汉族,四川省,经管系'
x <- textConnection(raw_data)
data<-read.table(x,sep=",",skip=1,col.names=1:8,fill=TRUE)
我想要的是:
X1 X2 X3 X4 X5 X6 X7 X8
1 1 男 20130990 壮族 广西省 旅游系 NA NA
2 24 男 20130520 汉族 广东省 经管系 NA NA
3 48 女 20131065 汉族 河北省 艺术系 NA NA
4 49 女 20131066 汉族 湖南省 艺术系 NA NA
5 50 女 20131067 汉族 广东省 艺术系 NA NA
6 129 男 20130340 汉族 海南省 经管系 NA NA
7 131 男 20130342 汉族 四川省 经管系 NA NA
不是:
X1 X2 X3 X4 X5 X6 X7 X8
1 编号 性别 序号 民族 籍贯 系部 NA NA
2 1 男 20130990 壮族 广西省 旅游系 NA NA
3 24 男 20130520 汉族 广东省 经管系 NA NA
4 48 女 20131065 汉族 河北省 艺术系 NA NA
5 49 女 20131066 汉族 湖南省 艺术系 NA NA
6 50 女 20131067 汉族 广东省 艺术系 NA NA
7 129 男 20130340 汉族 海南省 经管系 NA NA
8 131 男 20130342 汉族 四川省 经管系 NA NA
也许我不能以read.table(textConnection())的形式跳过第一行?
答案 0 :(得分:1)
我认为问题在于第一行实际上是一个空字符向量
我们可以使用readLines
> x <- textConnection(raw_data)
> readLines(x)
## [1] "" "编号,性别,序号,民族,籍贯,系部"
## [3] "1,男,20130990,壮族,广西省,旅游系" "24,男,20130520,汉族,广东省,经管系"
## [5] "48,女,20131065,汉族,河北省,艺术系,," "49,女,20131066,汉族,湖南省,艺术系,,"
## [7] "50,女,20131067,汉族,广东省,艺术系,," "129,男,20130340,汉族,海南省,经管系"
## [9] "131,男,20130342,汉族,四川省,经管系"
我们可以使用sub
删除raw_data
> read.table(text = sub("\\n", "", raw_data),
sep = ",", skip = 1, fill = TRUE)
## V1 V2 V3 V4 V5 V6 V7 V8
## 1 1 男 20130990 壮族 广西省 旅游系 NA NA
## 2 24 男 20130520 汉族 广东省 经管系 NA NA
## 3 48 女 20131065 汉族 河北省 艺术系 NA NA
## 4 49 女 20131066 汉族 湖南省 艺术系 NA NA
## 5 50 女 20131067 汉族 广东省 艺术系 NA NA
## 6 129 男 20130340 汉族 海南省 经管系 NA NA
## 7 131 男 20130342 汉族 四川省 经管系 NA NA
答案 1 :(得分:1)
您的规范中有一个额外的换行符。您可以跳过两行,并按原样删除额外的换行符和第一行:
data<-read.table(x,sep=",",skip=2,col.names=1:8,fill=TRUE)
或者您可以删除额外的换行符并单独跳过第一行:
raw_data='编号,性别,序号,民族,籍贯,系部
1,男,20130990,壮族,广西省,旅游系
24,男,20130520,汉族,广东省,经管系
48,女,20131065,汉族,河北省,艺术系,,
49,女,20131066,汉族,湖南省,艺术系,,
50,女,20131067,汉族,广东省,艺术系,,
129,男,20130340,汉族,海南省,经管系
131,男,20130342,汉族,四川省,经管系'
x <- textConnection(raw_data)
data<-read.table(x,sep=",",skip=1,col.names=1:8,fill=TRUE)
data
X1 X2 X3 X4 X5 X6 X7 X8
1 1 男 20130990 壮族 广西省 旅游系 NA NA
2 24 男 20130520 汉族 广东省 经管系 NA NA
3 48 女 20131065 汉族 河北省 艺术系 NA NA
4 49 女 20131066 汉族 湖南省 艺术系 NA NA
5 50 女 20131067 汉族 广东省 艺术系 NA NA
6 129 男 20130340 汉族 海南省 经管系 NA NA
7 131 男 20130342 汉族 四川省 经管系 NA NA
答案 2 :(得分:0)
Use data<-data[-1,]
如果第一行是标题,请使用header = FALSE。