【问题标题】:Passing a vector as the times argument to rep in R将向量作为时间参数传递给 R 中的 rep
【发布时间】:2019-07-16 03:03:39
【问题描述】:

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

我正在使用以下代码:

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

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

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

我的目标是做一些类似的事情,将固定的 k 替换为长度为 n 的数值向量,这样向量中​​的每个元素都代表 a 中输入的数量对应的网络节点。

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

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

【问题讨论】:

    标签: r boolean truthtable rep


    【解决方案1】:

    既然你想每次都改变k,你应该用k作为参数创建一个函数,然后你可以应用它(而不是replicate)。例如

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

    我们在这里并不真正需要n,因为大概这只是k 值向量的长度。

    【讨论】:

      猜你喜欢
      • 2021-07-03
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多