将向量作为R中rep的times参数传递

时间:2019-02-22 04:13:33

标签: r boolean truthtable rep

我正在为布尔网络建模项目创建二进制真值表的输入结构。大小为 n 的网络中的每个节点可能具有不同数量的输入 k ,从而导致维度表的真值表。

我正在使用以下代码:

replicate(n, expand.grid(rep(list(0:1),times=k)), simplify=FALSE)

如果 n k 具有固定值,则可以正常工作。

例如,在n = 3和k = 2的情况下,我得到三个0x和1s的4x4矩阵。这是一个有用的结果。

我的目标是用固定的 k 替换为长度为 n 的数值向量,以使向量中的每个元素都代表输入中的数量。相应的网络节点。

例如,如果n = 3x <- c(2, 3, 2),我将x作为参数传递,输出将是3个尺寸为4x4、8x8和4x4的矩阵。

使用我现有的代码,当我将k定义为向量并将其用作 times 参数时,我发现其无效。

1 个答案:

答案 0 :(得分:0)

由于您每次都想更改k,因此应使用k作为参数来创建一个函数,然后可以对其应用(而不是replicate)。例如

ks <- c(2, 3, 2)
lapply(ks, function(k) expand.grid(rep(list(0:1),times=k)))

我们实际上并不需要n,因为大概k值的向量的长度是多少。