0
我對r很新,我試圖通過解決有關r的書籍中的問題來更好地理解這種語言(我不確定是否可以放置標題這裏不做廣告)。其中一個問題是要求根據特定標準爲變量分配有條件的值。爲了更精確,我隨機選擇2至12之間的數(投擲2個骰子)和依賴性上我得到的值,我要值分配給變量status
和points
如下:在r中的ifelse函數中分配變量
- 如果得分是2,3,或12然後
status <- FALSE
和points <- NA
- 如果得分爲7或11,然後
status <- TRUE
和points <- NA
- 如果得分是4-6,8-10然後
status <- NA
和points <- score
這是很簡單的問題,我知道下面的代碼工作:
score <- sample(2:12,1)
if(score %in% c(2,3,12)){
status <- FALSE
points <- NA
} else if(score %in% c(7,11)){
status <- TRUE
points <- NA
} else {
status <- NA
points <- score
}
我也嘗試使用ifelse
功能來解決這個問題,但我得到一個錯誤,當我嘗試給變量賦值。這是我做的(我知道我現在得到的是一個角色矢量,但這是我能使它工作的唯一方法)。
ifelse(any(score == c(2,3,12)), "game_status = FALSE, point = NA",
ifelse(any(score == c(7,11)), "game_status = TRUE, point = NA",
paste("game_status = NA, point = ", score)))
有沒有辦法在ifelse
函數內賦值?另外,它可以用switch
函數完成嗎?我試圖找出是否有更多的方法來解決這個簡單的問題,以便我知道如何處理更復雜的問題。
謝謝!
'ifelse'是一個函數。 'if'和'else'是控制語句。 'ifelse'意味着有一個(可能是矢量)返回值。這並不是真的旨在做你想做的事情。 – Thomas 2015-03-31 19:41:35
'ifelse'應該被分配成類似於'example <-ifelse(...)'的形式,所以你不能在其中賦值。 – Soheil 2015-03-31 19:54:00
這個問題需要重寫。 'ifelse'與'if-else'以及賦值與變量值。 'loop'標籤也需要刪除。 – 2015-03-31 20:13:35