gpt4 book ai didi

r - 如果 "OR"有多个条件

转载 作者:行者123 更新时间:2023-12-03 16:30:26 25 4
gpt4 key购买 nike

我有一个标准的2x2 table

      Yes   No
Yes a b
No c d

我想创建一个条件,其中IF(a或b或c或d = 0)然后将0.5加到每个单元格a,b,c,d。

我已经试过了:
  if(a && b && c && d == 0){
a=a+0.5, b=b+0.5, c=c+0.5, d=d+0.5
}

但是我说错了
Error: unexpected ',' in:
"if(a && b && c && d== 0){
a=a+0.5,"

即我不认为这让我放了很多东西来执行。

我也不认为 &&正好在每个字母之间,因为我认为这意味着IF(a和b和...)

更新问题:

我还有另一个相关的问题。

如果我说了一组说n个表,则全部采用以下格式:
      Yes   No
Yes a b
No c d

并且,如果n个表中任何一个的a,b,c或d之一等于零,则对所有n个表中的a,b,c,d的每一个都加上0.5。我该怎么做?

我的列表如下所示:
    n11   n12  n21   n22
1 188 1157 173 1168
2 2 201 1 101
3 369 2280 354 2289
4 1 61 0 61
5 1306 16870 1333 16773
6 4 81 3 79
7 6 117 5 118
8 19 334 15 318
9 1 49 0 48
10 0 36 1 33
11 2 114 3 113
12 13 433 37 696
13 1 64 0 65
14 4 157 1 160
15 1 42 0 43
16 1 150 5 146
17 7 1124 10 1117
18 2 78 2 77

我想说的是,如果表的单元格的任何方面为0,那么我希望将0.5加到每个单元格上。

最佳答案

在R中,您不能使用,分隔行,但是可以使用;

另外,您的操作方式认为a,b and c是 bool 值(TRUE/FALSE),因为它们是数字,所以情况并非如此。您的条件应为:

if (a == 0 || b == 0 || c == 0 || d == 0)

请注意,即使 a,b and c不是 bool 值,因为它们是数字,并且 FALSEa == 0之间是等效的,您的代码仍将运行。这意味着您还可以将条件写为:
if (!a || !b || !c || !d)

对于UPDATE,我认为 matList是矩阵列表:
for (ii in  1:length(matList())) {
if (any(matList[[ii]] == 0)) {
matList = lapply(matList, function(X){X+0.5})
break # Exit the for loop
}
}
lapply对列表 mat + 0.5的每个元素(此处为矩阵)应用 matList(即,由于R糖使矩阵的每个元素+ 0.5)并返回结果列表。

关于r - 如果 "OR"有多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28346065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com