有没有更简单的方法来读取r中的不规则数据?

有没有更简单的方法来读取r中的不规则数据?,r,R,这是我的数据,例如下面的数据。字符“.”不能输入,它有特殊的含义 data='编号,学号,性别,民族,籍贯,系部,有无注册学籍, 1,1320207004,男,壮族,广西省,旅游系,有,., 2,1320207005,女,汉族,重庆市,旅游系,有,,, 3,1320403001,女,汉族,辽宁省,艺术系,有,,, 4,1320403002,女,汉族,广东省,艺术系,有,,, 5,1320403003,女,汉族,四川省,艺术系,有,,,. 6,1320403004,女,汉族,重庆市,艺术系,有,.

这是我的数据,例如下面的数据。字符“.”不能输入,它有特殊的含义

data='编号,学号,性别,民族,籍贯,系部,有无注册学籍,
1,1320207004,男,壮族,广西省,旅游系,有,.,
2,1320207005,女,汉族,重庆市,旅游系,有,,,
3,1320403001,女,汉族,辽宁省,艺术系,有,,,
4,1320403002,女,汉族,广东省,艺术系,有,,,
5,1320403003,女,汉族,四川省,艺术系,有,,,.
6,1320403004,女,汉族,重庆市,艺术系,有,.,,
7,1320403005,男,汉族,海南省,艺术系,有,,,
8,1320403006,男,汉族,海南省,艺术系,有,'
您不能通过以下方式阅读:

read.table(textConnection(data),sep=",",fill=TRUE,header=TRUE)
我是这样读的

r <- read.table(textConnection(data),sep=",",fill=TRUE) 
r <- as.matrix(r)
number <- unname(which(apply(r,2,function(y){all(is.na(y))})))
r <- r[,-number] 
header1 <- as.vector(unname(r[1,])) 
r <- r[-1,]
header1 <- header1[header1!=""]
header2 <- paste("v",1:(ncol(r)-length(header1)),sep="")
header <- c(header1,header2)
colnames(r) <- header
noquote(r)


     编号 学号       性别 民族 籍贯   系部   有无注册学籍 v1   v2
[1,] 1    1320207004 男   壮族 广西省 旅游系 有           .      
[2,] 2    1320207005 女   汉族 重庆市 旅游系 有                  
[3,] 3    1320403001 女   汉族 辽宁省 艺术系 有                  
[4,] 4    1320403002 女   汉族 广东省 艺术系 有                  
[5,] 5    1320403003 女   汉族 四川省 艺术系 有                . 
[6,] 6    1320403004 女   汉族 重庆市 艺术系 有           .      
[7,] 7    1320403005 男   汉族 海南省 艺术系 有                  
[8,] 8    1320403006 男   汉族 海南省 艺术系 有                  
r这里有一种方法:

raw <- read.table(textConnection(data),sep=",",fill=TRUE)
dat <- setNames(raw[-1,-9], c(as.character(unlist(raw[1,-c(8:10)])), "v1", "v2"))
这里有一个方法:

raw <- read.table(textConnection(data),sep=",",fill=TRUE)
dat <- setNames(raw[-1,-9], c(as.character(unlist(raw[1,-c(8:10)])), "v1", "v2"))
这里有一个方法:

raw <- read.table(textConnection(data),sep=",",fill=TRUE)
dat <- setNames(raw[-1,-9], c(as.character(unlist(raw[1,-c(8:10)])), "v1", "v2"))
这里有一个方法:

raw <- read.table(textConnection(data),sep=",",fill=TRUE)
dat <- setNames(raw[-1,-9], c(as.character(unlist(raw[1,-c(8:10)])), "v1", "v2"))


您可以运行,
确实出现在我的结果中,请尝试。chcp 936。请将您的错误消息粘贴到此处。如果某个特定的程序包对于代码的可复制性是必需的,请包括对
require
的相关调用,尤其是当程序包有些模糊时。我已在行尾将其删除
->
。我修复了它,您可以得到结果。您可以运行,
确实出现在我的结果中,请尝试。chcp 936。请将您的错误消息粘贴到此处。如果某个特定的程序包对于代码的可复制性是必需的,请包括对
require
的相关调用,尤其是当程序包有些模糊时。我已在行尾将其删除
->
。我修复了它,您可以得到结果。您可以运行,
确实出现在我的结果中,请尝试。chcp 936。请将您的错误消息粘贴到此处。如果某个特定的程序包对于代码的可复制性是必需的,请包括对
require
的相关调用,尤其是当程序包有些模糊时。我已在行尾将其删除
->
。我修复了它,您可以得到结果。您可以运行,
确实出现在我的结果中,请尝试。chcp 936。请将您的错误消息粘贴到此处。如果要使您的代码可复制,需要特定的程序包,请包括对
要求
的相关调用,尤其是当程序包有点模糊时。我已在行尾将其删除
->
。我修复了它,您可以得到结果。