【发布时间】:2019-11-08 15:20:55
【问题描述】:
如何遍历数据框中所有可能的列组合,然后按函数分组使用这些变量组合?例如,如果我有一个包含 2 列 A 和 B 的数据框,我想运行一个循环,该循环可以先按 A 分组,然后按 B 分组,最后按 AB?
P.S:我尝试过combn函数,但我们只能选择固定数量的组合(2,3等)。但是,我需要所有可能的列组合,这基本上等于列数。 4 列将是:1、2、3 和 4 的所有组合。谢谢!
【问题讨论】:
-
嗨..您一直在一次又一次地发布相同的问题,但没有任何改进。请在预期输出中包含reproducible example。
-
我意识到,Reprex 是本网站当前的正统观念。既然你没有提供,那我就猜测一下。请参阅下面的答案。如果您正在采用所有可能的列组合,您可能希望考虑您的数据结构不太适合您的问题。后退一点,试着了解大局。一旦你拥有了所有这些组合,你将如何处理它们?仅仅因为你可以提出一个问题,并不意味着它就是你应该解决的问题。
-
嗨@michael..这正是我想要的(A、B、C、AB、AC、BC、ABC).. 再次感谢您通过数据集进行解释。此外,我想通过 group_by 函数以及数据框的其他列传递这些组合。例如 group_by(date,combination)..所以我需要运行一个循环,一次可以采用一个组合并将其传递给 group_by 函数。任何帮助,将不胜感激。再次感谢!
-
使用链接帖子中的功能:
x <- colnames(mtcars)[1:3]; result <- c(x, unlist(make_combinations(x), recursive = FALSE)); result应该可以满足您的需求。
标签: r