【发布时间】:2018-05-21 19:09:53
【问题描述】:
我正在尝试使用 R/tidyverse 和其中一个 JSON 包将长表(例如下面的示例)转换为嵌套列表到 JSON。我怀疑这可以通过某种方式使用 split/purrr 来完成,但我无法弄清楚到底如何。
采取以下示例输入:
library(tidyverse)
library(stringi)
df = data.frame(patient = c(rep("A",4), rep("B",4)),
sample = rep(c("P","R"),4),
file = stri_rand_strings(8, 6, '[A-Z]'))
例如看起来像这样
patient sample file
1 A P ZZEVYQ
2 A R KIUXRU
3 A P XRYBUE
4 A R ZCHBKN
5 B P WZYAPM
6 B R EKDFYT
7 B P CYEJCK
8 B R XFAYXX
我想输出类似的内容(注意:手动输入)。
[
{
"patient" : "A",
"samples" : [
{
"sample" : "P",
"files" : [
{
"file" : "ZZEVYQ"
},
{
"file" : "XRYBUE"
}
]
},
{
"sample" : "R",
"files" : [
{
"file" : "KIUXRU"
},
{
"file" : "ZCHBKN"
}
]
}
]
},
{
"patient" : "B",
"samples" : [
{
"sample" : "P",
"files" : [
{
"file" : "WZYAPM"
},
{
"file" : "CYEJCK"
}
]
},
{
"sample" : "R",
"files" : [
{
"file" : "EKDFYT"
},
{
"file" : "XFAYXX"
}
]
}
]
}
]
关于如何做到这一点的任何建议?
非常感谢!
【问题讨论】: