r - R 中 n 个伯努利随机变量的排列

标签 r permutation

我有一组 n 个变量,每个变量都可以取 0 或 1 的值。我想使用 R 来获取一个由所有可能的矩阵(或数据框等,没关系)组成的矩阵n 个值的排列。例如,如果 n=3,可能的值为:

 111
 110
 101
 100
 010
 011
 001
 000

我怎样才能在 R 中做到这一点?

最佳答案

您可以使用expand.grid来做到这一点。

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

输出:

   #   Var1 Var2 Var3
   # 1    0    0    0
   # 2    1    0    0
   # 3    0    1    0
   # 4    1    1    0
   # 5    0    0    1
   # 6    1    0    1
   # 7    0    1    1
   # 8    1    1    1

如果您想将其粘贴为一项,则可以选择:

do.call("paste0", expand.grid(0:1,0:1,0:1))

这会导致:

[1] "000" "100" "010" "110" "001" "101" "011"
[8] "111"

另外,正如 @Jilber Urbina 所建议的,可以使用:expand.grid(1:0,1:0,1:0)[3:1] 来获得不同的顺序

概括解决方案:

还可以这样做: expand.grid(rep(list(0:1), 3)) ,这里 3 是重复次数,所以有人可以将其更改为 20 或 100 基础他们的需求。

替代方法:

gtools::permutations(n=2,r=3, v=0:1, repeats.allowed = T)

关于r - R 中 n 个伯努利随机变量的排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50180421/

相关文章:

r - 绘图条形图中的颜色

recursion - 了解 Peter Norvig 在 PAIP 中的置换解决方案

python - 将置换矩阵应用于 pandas DataFrame

r - 将 "1984-03-25 02:00:00"转换为 POSIX 给出 NA

r - 如何在 ggplot2 的条形图上正确地将 geom_errorbar 设置为 "dodge"?

r - 如何向数据框中添加空行?

r - 在 ggplot2 函数中访问轴标签的变量属性信息

javascript - JavaScript 中重复元素的独特排列

java - 数组的 k 大小的相等排列数

c++ - std::next_permutation() 来自 vector 的一部分