亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么R的ifelse語句不能返回向量?

為什么R的ifelse語句不能返回向量?

呼喚遠方 2019-09-10 12:40:09
為什么R的ifelse語句不能返回向量?我發現R的ifelse陳述不時很方便。例如:ifelse(TRUE,1,2)# [1] 1ifelse(FALSE,1,2)# [1] 2但是我對以下行為感到困惑。ifelse(TRUE,c(1,2),c(3,4))# [1] 1ifelse(FALSE,c(1,2),c(3,4))# [1] 3這是一個超出我的薪資水平的設計選擇嗎?
查看完整描述

3 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

ifelse各州的文件:

ifelse返回一個具有相同形狀的值,該值test填充了從中選擇的元素yes或 no取決于元素是否testTRUEFALSE。

由于您傳遞長度為1的測試值,因此您將獲得長度為1的結果。如果傳遞更長的測試向量,則會得到更長的結果:

> ifelse(c(TRUE, FALSE), c(1, 2), c(3, 4))[1] 1 4

因此ifelse,其目的是測試布爾值向量并返回相同長度的向量,填充從(向量)yesno參數中獲取的元素。

由于函數的名稱,這是一個常見的混淆,當你真的只想要一個正常的if () {} else {}結構時使用它。



查看完整回答
反對 回復 2019-09-10
?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

我打賭你想要一個簡單的if語句而不是ifelse- 在R中,if它不僅僅是一個控制流結構,它可以返回一個值:


> if(TRUE) c(1,2) else c(3,4)

[1] 1 2

> if(FALSE) c(1,2) else c(3,4)

[1] 3 4



查看完整回答
反對 回復 2019-09-10
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

請注意,如果在以下內容中分配結果,則可以避免此問題ifelse:


ifelse(TRUE, a <- c(1,2), a <- c(3,4))

a

# [1] 1 2


ifelse(FALSE, a <- c(1,2), a <- c(3,4))

a

# [1] 3 4



查看完整回答
反對 回復 2019-09-10
  • 3 回答
  • 0 關注
  • 873 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號