我有一个文本文件'\ t'分开了。前两列是文本,第三列是JSON格式,如{type: [{a: a1, timestamp: 1}, {a:a2, timestamp: 2}]}
我怎样才能把它正确地放入DF?
我想像factor1\tparam1\t{type: [{a: a1, timestamp: 1}, {a:a2, timestamp: 2}]}
那样解析像
factor_column param_column a_column ts_column
factor1 param1 a1 1
factor1 param1 a2 2
答案 0 :(得分:1)
我已将您提供的一行文字保存到名为' parseJSON.txt'的文件中。然后,您可以使用read.table
按常规阅读该文件,然后使用library(jsonlite)
解析第3列。
我还格式化了文本行以包含JSON代码周围的引号:
factor1 param1 {"type": [{"a": "a1", "timestamp": 1}, {"a":"a2", "timestamp": 2}]}
library(jsonlite)
dat <- read.table("parseJSON.txt",
sep="\t",
header=F,
quote="")
#parse 3rd column using jsonlite
js <- fromJSON(as.character(dat[1,3]))
js
现在是list
> js
$type
a timestamp
1 a1 1
2 a2 2
可以与前两列dat
res <- cbind(dat[,1:2],js$type)
names(res) <- c("factor_column", "param_column", "a_column", "ts_column")
给出了
> res
factor_column param_column a_column ts_column
1 factor1 param1 a1 1
2 factor1 param1 a2 2