r - 如何创建逻辑向量的排列?
问题描述
是否有一个函数可以帮助我输出长度为 n 的布尔向量的所有 2^n 排列?例如,如果我有一个长度为 n=2 的布尔向量 c(FALSE,FALSE),我应该获得 2^2=4 个排列。
因此,我需要一个函数,它将这个输出概括为长度为 n 的数组,这意味着如果 n=3,输出的长度应该是 2^3 等等......
我已经尝试过 gtools 包中的排列,但这似乎是不正确的,或者至少可以提供部分答案。这种方法不能很好地概括,并且在 n>2 时也给了我错误。
> permutations(2,2,c(TRUE,FALSE))
[,1] [,2]
[1,] FALSE TRUE
[2,] TRUE FALSE
输出应该是:
FALSE, FALSE,
TRUE, TRUE,
FALSE, TRUE,
TRUE, FALSE
解决方案
你可以使用expand.grid
,
expand.grid(c(TRUE, FALSE), c(TRUE, FALSE))
# Var1 Var2
#1 TRUE TRUE
#2 FALSE TRUE
#3 TRUE FALSE
#4 FALSE FALSE
推荐阅读
- python - 带有表单的python tkinter键盘
- graphql - Hotchocolate GraphQL 中的合并规则?
- python - 绘制折线图,不管x轴python的顺序
- php - 按日期计数对数组进行分组
- css - 边距自动未在水平中心对齐项目
- javascript - 是否有将字符串转换为 Tabulator.js 结构数据的数组的函数?
- sql - 如何格式化 SQL 插入以对齐逗号分隔符?
- c++ - 如何使用 boost-di 注入仅在运行时已知的值?
- r - 根据 R 中的条件选择日期
- javascript - 如何在 redux-toolkit 中的 react 组件之外访问 react-redux 存储?