将混合数据读入R中

时间:2015-04-07 19:54:08

标签: json r

我有一个文本文件'\ t'分开了。前两列是文本,第三列是JSON格式,如{type: [{a: a1, timestamp: 1}, {a:a2, timestamp: 2}]} 我怎样才能把它正确地放入DF?

我想像factor1\tparam1\t{type: [{a: a1, timestamp: 1}, {a:a2, timestamp: 2}]}那样解析像

这样的DF
factor_column  param_column   a_column  ts_column
    factor1        param1        a1         1    
    factor1        param1        a2         2    

1 个答案:

答案 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