gpt4 book ai didi

R找到所有可能的唯一组合

转载 作者:行者123 更新时间:2023-12-03 21:24:14 25 4
gpt4 key购买 nike

我试图在 R 中找到所有可能的独特组合。似乎有很多类似的问题被问到,但我找不到相同的问题。

我的问题是从向量 x 中找到 m 个元素的组合,但 m 可能大于 x。例如,从字母 [1:2] 中选取 3 个元素,希望可以返回:

combn(letters[1:2],3)
[,1] [,2] [,3] [,4]
[1,] "a" "a" "a" "b"
[2,] "a" "a" "b" "b"
[3,] "a" "b" "b" "b"

但是组合函数 n < m 中的错误。有类似的功能,包括 gtools:permutations、expand.grid。

如果之前有人问过同样的问题,但我没有听懂,再次道歉。谢谢。

最佳答案

有一些专门为此构建的软件包。基本前提是我们需要重复长度m的组合哪里m可能大于输入向量。我们从经典开始 gtools :

library(gtools)
combinations(2, 3, letters[1:2], repeats.allowed = TRUE)
[,1] [,2] [,3]
[1,] "a" "a" "a"
[2,] "a" "a" "b"
[3,] "a" "b" "b"
[4,] "b" "b" "b"

然后是 arrangements这是 iterpc 的替代品(@Gregor 在上面的评论中链接的包):
library(arrangements)
arrangements::combinations(2, 3, letters[1:2], replace = TRUE)
[,1] [,2] [,3]
[1,] "a" "a" "a"
[2,] "a" "a" "b"
[3,] "a" "b" "b"
[4,] "b" "b" "b"

最后还有 RcppAlgos ,我写的:
library(RcppAlgos)
comboGeneral(letters[1:2], 3, TRUE)
[,1] [,2] [,3]
[1,] "a" "a" "a"
[2,] "a" "a" "b"
[3,] "a" "b" "b"
[4,] "b" "b" "b"
combn是一个很棒的功能,它作为 R 的基本包之一提供,但是它的缺点之一是它不允许重复(这是这里要求的)。我为与此完全相同的问题写了一篇非常全面的概述,可在此处找到: A Walk Through a Slice of Combinatorics in R .

关于R找到所有可能的唯一组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49563565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com