Я пытаюсь преобразовать длинную таблицу (например, пример ниже) во вложенный список в JSON, используя R / tidyverse и один из пакетов 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"
}
]
}
]
}
]
Есть предложения о том, как это сделать?
Большое спасибо!