【发布时间】:2020-12-29 06:49:18
【问题描述】:
我在使用 map 函数后创建了一个嵌套数据框(如下所示),但我尚未对其进行测试。考虑下面的示例,假设我在另一个数据框中嵌套了 4 个数据框(基于年份)。也就是说,我手中的数据框看起来像df_nested。 我如何分别完全加入每年的数据帧(再次使用地图),然后将它们取消嵌套到最终数据集中?我正在尝试完全加入 2010 年的数据帧(df1, df2) 相互连接,然后将 2011 年的数据帧 (df3, df4) 完全连接起来,最后附加这些完全连接的数据集。
df1 <- data.frame(year = c(2010,2010,2010,2010),id=c(1,2,3,4), name = c("A","B","C","D"))
df2 <- data.frame(year = c(2010,2010,2010,2010),id=c(1,2,3,4), age=c(21,22,25,29))
df3 <- data.frame(year = c(2011,2011,2011,2011),id=c(5,6,7,8), name = c("W","X","Y","Z"))
df4 <- data.frame(year = c(2011,2011,2011,2011),id=c(5,6,7,8), age=c(30,35,40,50))
df_netsed <- bind_rows(df1,df2,df3,df4) %>%
group_by(year) %>%
nest()
这是我希望看到的:
df_expected <- full_join(df1, df2,by="id") %>% bind_rows(full_join(df3, df4,by="id"))
【问题讨论】:
-
df_netsed没有关于哪些数据来自df1或df2的信息。你将如何加入他们? -
@RonakShah,我假设它们是基于年份嵌套的,我们可以将 plyr::join_all() 之类的函数映射到它们。
-
您可以访问
df1、df2数据帧吗?还是你身边只有df_netsed? -
我可以将嵌套的数据框放在一个列表中,如果这有助于更好地甚至取消嵌套它们。