Я хотел бы создать двойную вложенную структуру данных, где c вложен в элемент, который далее вложен в id.двойное вложение с tidyverse и purrr
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)))
)
, но это дает еще один столбец в м3, а не в м2 $ один.
вы должны учитывать «традиционные» R; это, например, работа для 'split' и списков структур. я не могу попробовать здесь, но что-то вроде 'lapply (split (m, m $ id), function (df) split (df, df $ a))' может быть отправной точкой –
Именование столбца, который вы делаете через 'mutate '« один »вместо« два »дает вам результат, который вы хотите? – aosmith
@aosmith Yep - Это сработало. Спасибо. Если вы напишете это, я одобрю его. – Misha