【问题标题】:If a variable belongs to a set如果一个变量属于一个集合
【发布时间】:2020-04-12 07:51:52
【问题描述】:

我想写以下if条件

if( (k==1)| (k==4)| (k==8) | (k== 11)| (k==12)){
       ....
} else{
       ....
}

以更紧凑的方式,例如就像php 一样,in_array 检查数组中是否存在值。

【问题讨论】:

标签: r if-statement


【解决方案1】:

您可以使用any

f <- function(k) if (any(k %in% c(1, 4, 8, 11, 12))) 1 else 0
f(1:12)
# [1] 1
f(13:15)
# [1] 0
f(c(1, 4, 8, 11, 12, 13, 14))
# [1] 1
f(c(2, 5, 9, 13, 14))
# [1] 0
f(c(1, 2, 5, 9, 13, 14))
# [1] 1

【讨论】:

    【解决方案2】:

    进一步:如果需要'and'逻辑而不是'or',则可以使用all()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 2018-01-06
      • 2015-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多