【发布时间】:2017-06-29 23:27:08
【问题描述】:
我想创建一个双嵌套数据结构,其中 c 嵌套在 a 中,a 进一步嵌套在 id 中。
library(tidyverse)
m<-data_frame(id=c(100,101,100,101,100,101,100,101),
a=c("A","A","B","B","A","A","D","D"),
c=c(1:8))
m2 <- m %>%
group_by(id) %>%
nest(.key = one)
所以第一个巢是可以的。但我想进一步嵌套在 m2$one 中。
知道我该怎么做吗?
我可以走了:
m3 <- m2 %>%
mutate(
two=map(m2$one,~(.x %>%
group_by(a) %>%
nest(.key=two)))
)
但这会在 m3 中提供另一列,而不是在 m2$one 中。
【问题讨论】:
-
您应该考虑“传统” R ;例如,这是
split的工作并列出结构。我不能在这里尝试,但像lapply(split(m, m$id), function(df) split(df, df$a))这样的东西可能是一个起点 -
将您通过
mutate生成的列命名为“one”而不是“two”是否会给您想要的输出? -
@aosmith 是的——它奏效了。谢谢。如果你写出来,我会批准。