【发布时间】:2018-01-21 02:53:08
【问题描述】:
我有一个包含 json 数据的 data.frame:
dat1 = data.frame(id = 001, name = "Mac", score = '{"math":5}', date = '{"date1":"2018-01-19","date2":"2018-01-20"}')
dat2 = data.frame(id = 002, name = "Eric", score = '{"math":7}', date = '{"date1":"2018-01-18","date2":"2018-01-20"}')
dat = rbind(dat1, dat2)
我想得到以下data.frame:
# id name score.math date.date1 date.date2
# 1 1 Mac 5 2018-01-19 2018-01-20
# 2 2 Eric 7 2018-01-18 2018-01-20
我想先使用 jsonlite::fromJSON,然后再使用 rbind 数据。
【问题讨论】:
-
您可以使用
regexec和regmatches将日期和分数字段转换为所需的对象类型。首先使用data.table::rbindlist(list(dat1, dat2), use.names = T, fill = T)得到一个合并的data.table,然后在两列上调用函数。