【发布时间】:2017-12-13 21:42:13
【问题描述】:
我正在尝试创建 whisker 包所期望的数据结构,但我似乎无法弄清楚如何
从我的数据框中创建该结构。假设我有以下数据框:
library(dplyr)
existing_format <-
mtcars %>%
select(carb, gear, cyl) %>%
arrange(carb, gear, cyl) %>%
distinct()
...我想从existing_format 转到以下所需格式(仅显示desired_format 列表的前两个元素):
desired_format <- list(
list(
carb = "1",
gear = list(
list(gear = "3", cyl = list(list(cyl = "4"), list(cyl = "6"))),
list(gear = "4", cyl = list(list(cyl = "4")))
)
),
list(
carb = "2",
gear = list(
list(gear = "3", cyl = list(list(cyl = "8"))),
list(gear = "4", cyl = list(list(cyl = "4"))),
list(gear = "5", cyl = list(list(cyl = "4")))
)
)
)
我尝试过按carb 和gear 进行分组,然后使用tidyr::nest() 创建嵌套的df,但什么也没做。有人告诉我whisker::iteratelist() 或whisker::rowSplit() 是前进的方向,但我想不通。
谢谢, 克里斯
【问题讨论】:
-
dflist <- lapply( (existing_format %>% split(., .[,'carb'])), function(xtbl) xtbl %>% split(., .[,'gear']))这可能会让您领先一步。 -
有帮助,谢谢