我目前有数据,每行都是分开的。我的目标是能够将所有行组合成一个整齐的数据表。数据目前在文本文件中如下所示:
{ "Name":"Person_1_Name"
"Age":"15"
}
{ "Name":"Person_2_Name"
"Age":"25"
}
........
我想得到它看起来像:
Name Age
Person_1_Name 15
Person_2_Name 25
.....
有没有办法在R中实现这个目标?我所知道的最粗糙的方法是编写一个搜索功能,但是想知道人们会不会知道另一种方式。谢谢!
答案 0 :(得分:4)
如果数据实际上是这样的:
txt <- '[{ "Name":"Person_1_Name",
"Age":"15"
},
{ "Name":"Person_2_Name",
"Age":"25"
}]'
然后是以下内容:
library(rjson)
do.call(rbind, fromJSON(txt))
给出:
Name Age
[1,] "Person_1_Name" "15"
[2,] "Person_2_Name" "25"
如果没有,那么先将它按到那个形状。
答案 1 :(得分:3)
不确定。如果这实际上是JSON格式,请使用库。但你也可以解析原始文本。
yr_data <-
'{ "Name":"Person_1_Name"
"Age":"15"
}
{ "Name":"Person_2_Name"
"Age":"25"
}'
# split by line
yr_data <- unlist(strsplit(yr_data, '\n'))
# subset to only the lines with : in them
yr_data <- grep(':', yr_data, value=T)
# split on the colon
yr_data <- unlist(strsplit(yr_data, ':'))
# name is in every 2nd place, age in every 4th
data.frame(Name=yr_data[seq(2, length(yr_data), by=4)],
Age=yr_data[seq(4, length(yr_data), by=4)])
输出:
Name Age
1 Person_1_Name 15
2 Person_2_Name 25