R语言中ifelse()和if(){}else{}的区别


这两种if完全不同,有很大的区别,请看下面的示例。
ifelse()中的条件判断中可以得到多个逻辑结果,有多少个逻辑结果,ifelse()的返回值就有多少个元素,且不同的逻辑结果取不同的值。
if(){}else{}中的条件判断中只得到一个逻辑结果(如果有多个逻辑结果,会自动取第一个,并抛出警告)。然后根据这个逻辑结果,取后面表达式的值。
-- 示例1:

a = 0
b = c(1, 2, 3)
ifelse(a==0, b, 0)
if(a==0){b}else{0}

结果如下:

> a = 0
> b = c(1, 2, 3)
> ifelse(a==0, b, 0)
[1] 1
> if(a==0){b}else{0}
[1] 1 2 3

-- 示例2:

a = c(1, 2, 3)
b = 0
ifelse(a == c(1, 2, 3), 1, 0)
if(a==c(1, 2, 3)){1}else{0}

结果如下:

> a = c(1, 2, 3)
> b = 0
> ifelse(a == c(1, 2, 3), 1, 0)
[1] 1 1 1
> if(a==c(1, 2, 3)){1}else{0}
[1] 1
Warning message:
In if (a == c(1, 2, 3)) { :
  the condition has length > 1 and only the first element will be used


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM