首页 > 解决方案 > 使用带有 n 个元素的 expand.grid 函数

问题描述

我需要生成1:n重复n次数的所有组合。示例n = 4

expand.grid(1:4, 1:4, 1:4, 1:4)

但是,当数字较大时,此方法将需要大量输入n。有没有一种有效的方法来做到这一点?我试过了paste,不能让它工作。

标签: rcombinationspermutation

解决方案


首先,您正在寻找重复的排列,而不是组合。其次,有几个包可以在R. 有经典包gtools,有两个高效编译库arrangementsRcppAlgos(我是作者):

## library(gtools)
gtools::permutations(4, 4, repeats.allowed = TRUE)

## library(arrangements)
arrangements::permutations(4, 4, replace = TRUE)

## library(RcppAlgos)
RcppAlgos::permuteGeneral(4, 4, TRUE)

推荐阅读