【发布时间】:2016-06-12 16:18:15
【问题描述】:
我已经编辑了我的问题并更改了脚本中的某些行,以便清楚地找到我可以获得输出 1 或 0 的次数。
我有 19 个变量。我尝试了这 19 个变量的可能组合,以给出 0 或 1 的二进制输出,即 2 的 19 次方 (5,24,288)。但是由于内存空间有限,我无法在 R 中显示所有 5,24,288 个组合的真值表。有什么方法可以找到输出 1 和 0 的组合数。下面是脚本,我使用逻辑门 AND 和 OR 给出了以下输入。请给我一些想法或建议,以找出我可以将值 0 或 1 作为输出的次数
n <- 19
l <- rep(list(0:1), n)
inputs <- expand.grid(l)
len <-dim(inputs)
len <-len[1]
output <- 1;
for(i in 1:len)
{
if((inputs[i,1] == 1 & inputs[i,2] == 1 & inputs[i,3] == 1 & (inputs[i,4] == 1 & inputs[i,5] == 1 | inputs[i,6] == 1 & inputs[i,7] == 0)) | (inputs[i,1] == 1 & inputs[i,2] == 1 & inputs[i,8] == 1 & inputs[i,9] == 1) | (inputs[i,1] == 1 & inputs[i,10] == 0 & inputs[i,11] == 0) |(inputs[i,1] == 1 & inputs[i,12] == 1 & inputs[i,13] == 1 & inputs[i,14] == 1) | (inputs[i,1] == 1 & inputs[i,15] == 1 & inputs[i,16] == 1) | (inputs[i,1] == 1 & inputs[i,17] == 0) | (inputs[i,1] == 1 & inputs[i,18] == 1 & inputs[i,19] == 1)){
output[i] <- 1
}
else
{
output[i] <- 0
}
}
data <- cbind(inputs, output)
write.csv(data, "data.csv", row.names=FALSE)
【问题讨论】:
-
你的问题有点含糊。你能发布你最终想要的输出吗?
-
在 2^20 个可能的布尔组合中,恰好有 1 个为真。当然,您不需要程序来确定这一点。
-
谢谢 Gregor 和 moh3n。这不是家庭作业,这是我在这里给出的一个例子。我参与编写一个脚本来显示给定 n 个基因如何在不同的组合中相互作用。我不想将输出显示为真值表,我只想知道次数,1 或0 作为输出。正如我所看到的,只有一次,我会得到输出 1,因为我使用了 AND 运算符,当我使用 AND , OR 时,我得到 1 和 0 的次数作为输出。谢谢 moh3n 和 Gregor 处理我的脚本
标签: r logical-operators boolean-logic truthtable