基于至少一个共同值对Id进行分组

我有一个列表,其元素是整数,如果这些元素至少共享一个值,我想累积这些元素。对于那些与其他元素不共享任何价值观的元素,我希望它们保持原样。这是我的样品日期:

x <- list(c(1, 2), c(1, 2, 3), c(2, 3, 4), c(3, 4, 5), c(4, 5, 8), c(6, 9, 7), 7, c(5, 8), 10, 11)

这是我想要的输出:

desired_reult <- list(c(1, 2, 3, 4, 5, 8), 
                      c(6, 9, 7), 
                      10, 
                      11)

我想先用reduceaccumulate函数来做,purrrtidyverse欢迎任何其他解决方案。到目前为止,我已经尝试过这个解决方案,但它只给了我一个union,显然放弃了其余的:

x %>% 
  reduce(~ if(any(.x %in% .y)) union(.x, .y) else .x)

[1] 1 2 3 4 5 8

一般来说,我正在寻找一种将整数 (id) 与常见值(如某种聚类)进行分组的方法,但不幸的是,到目前为止,我的努力都是徒劳的。

非常感谢您提前提供帮助。

以上是基于至少一个共同值对Id进行分组的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>