gpt4 book ai didi

r - R中expand.grid函数的修改

转载 作者:行者123 更新时间:2023-12-04 10:07:59 24 4
gpt4 key购买 nike

我需要创建一个包含所有可能组合的矩阵。

L<-12 
vec <- c(0:21)
lst <- lapply(numeric(L), function(x) vec)
Mat1<-as.matrix(expand.grid(lst))

结果将是非常大的矩阵,我的计算机无法计算它。
实际上,我只需要第一列中的值大于第二列中的值,第二列中的值大于第三列中的值的组合,依此类推。我可以修改 expand.grid 函数以删除不必要的组合吗?

最佳答案

正如@AllanCameron 所确定的,您所追求的等同于采用 vec 的所有组合大小为 12 -- 您也可以使用内置函数 combn为了那个原因:

do.call(rbind, combn(vec, L, simplify = FALSE))

使用 data.table 可能会更快操作 combn 的输出转换成所需的格式:
library(data.table)
setDT(transpose(combn(vec, L, simplify=FALSE))

关于r - R中expand.grid函数的修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60246975/

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