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