2015-12-15 60 views
0

我試圖瞭解R ifelse()函數如何操作。R條件元素選擇形狀

ifelse(TRUE, "yes", "no") 
> "yes" 
ifelse(TRUE, 1:10, 2:11) 
> 1 

將R手冊頁指出,返回值具有相同的相同TEST參數(在這裏它的邏輯TRUE)。

有沒有辦法使用ifelse()獲得此行爲?:

ifelse(TRUE, 1:10, 2:11) 
> 1 2 3 4 5 6 7 8 9 10 # NOT ACTUAL OUTPUT 
+1

'ifelse'是矢量化的測試參數。如果if或else條件的長度嚴格低於測試參數的長度並分割測試參數,則它們將被回收。如果你想要最後的結果,使用簡單的if運算符'\'if if('TRUE,1:10,2:11)' –

回答

1

我經常做的錯誤是由於此行爲的方式。在這種情況下,這會給你想要的結果。

ifelse(TRUE, list(1:10), list(2:11)) 

如果您需要數字向量,則可以使用unlist