在 R 中处理非结构化数据
Dealing with non-structured data in R
PSA:我不确定这是否符合主题/是否属于 meta
新用户通常 post 他们的代码在他们的控制台中打印的版本中,例如
"Here is my data:"
> data
Num Data
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E
据我所知,这通常是一种痛苦或无法重现。 我是否缺少一种明显的方法可以将非结构化数据转换为可重现的数据?(除了要求用户输入他们的数据)
如果没有,我想考虑创建一个包来这样做。下面是一个存在于此类包中的函数的不可靠、不稳健的示例。
Dump_to_DF<-function(dump){
test<-regmatches(dump
, gregexpr(".*\n|.*$",
dump, perl=TRUE))
test2<-unlist(test)
test3<-strsplit(test2, split="\s+",perl = T)
len<-length(test3)
test5<-list()
for(i in 2:len){
test4<-unlist(test3[[i]])
test5[[i]]<-test4[-1]
}
test5<-test5[-1]
Fin_Data<-do.call(rbind.data.frame, test5)
names(Fin_Data)<-test3[[1]]
return(Fin_Data)
}
data<-"Num Data
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E"
Data<-Dump_to_DF(data)
> Data
Num Data
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E
有没有已经存在的功能与此功能类似的功能?
对于任何想知道我的动机的人,我讨厌等待,我宁愿能够快速编辑一个新问题以包含可重现的数据,这样每个人都可以更快地找到答案。最终让 SO 机器人使用类似的东西来建议编辑也很不错。
读取您提供的数据的一种方法是这样的:
data <- read.table(text="Num Data
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E")
如果它有标题,您可能需要在命令中添加 header=T
。
PSA:我不确定这是否符合主题/是否属于 meta
新用户通常 post 他们的代码在他们的控制台中打印的版本中,例如
"Here is my data:"
> data
Num Data
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E
据我所知,这通常是一种痛苦或无法重现。 我是否缺少一种明显的方法可以将非结构化数据转换为可重现的数据?(除了要求用户输入他们的数据)
如果没有,我想考虑创建一个包来这样做。下面是一个存在于此类包中的函数的不可靠、不稳健的示例。
Dump_to_DF<-function(dump){
test<-regmatches(dump
, gregexpr(".*\n|.*$",
dump, perl=TRUE))
test2<-unlist(test)
test3<-strsplit(test2, split="\s+",perl = T)
len<-length(test3)
test5<-list()
for(i in 2:len){
test4<-unlist(test3[[i]])
test5[[i]]<-test4[-1]
}
test5<-test5[-1]
Fin_Data<-do.call(rbind.data.frame, test5)
names(Fin_Data)<-test3[[1]]
return(Fin_Data)
}
data<-"Num Data
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E"
Data<-Dump_to_DF(data)
> Data
Num Data
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E
有没有已经存在的功能与此功能类似的功能?
对于任何想知道我的动机的人,我讨厌等待,我宁愿能够快速编辑一个新问题以包含可重现的数据,这样每个人都可以更快地找到答案。最终让 SO 机器人使用类似的东西来建议编辑也很不错。
读取您提供的数据的一种方法是这样的:
data <- read.table(text="Num Data
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E")
如果它有标题,您可能需要在命令中添加 header=T
。