[英]How to Use ifelse Statements in R
這是我的代碼,它不起作用。 我究竟做錯了什么?
nmesRAW <- read.csv("nmesUNPROC.csv")
nmesRAW$beltuse <- ifelse(nmesRAW$beltuse == 1, ‘Rarely’, ifelse(nmesRAW$beltuse == 2 ‘Sometimes’, ifelse(nmesRAW$beltuse == 3 ‘Always’)))
我想在此列中將所有 1 替換為很少,將所有 2 替換為有時,將所有 3 替換為 always。 我怎么做?
這就是您使用switch()
對數據執行此操作的方式:
nmesRAW$beltuse <- sapply(nmesRAW$beltuse, function(x) switch(x, "1"="Rarely", "2"="Sometimes", "3"="Always"))
使用一些可重復性的代碼示例:
# some random data
nmesRAW <- c(1,3,1,2,3,3)
sapply(nmesRAW, function(x) switch(x, "1"="Rarely", "2"="Sometimes", "3"="Always"))
# output:
[1] "Rarely" "Always" "Rarely" "Sometimes" "Always" "Always"
ifelse()
如果你堅持使用ifelse()
而沒有別的(我希望這不是功課),那么你的代碼應該如下所示:
nmesRAW$beltuse <- ifelse(nmesRAW$beltuse == 1, 'Rarely', ifelse(nmesRAW$beltuse == 2, 'Sometimes', 'Always'))
您的代碼給您這些錯誤的原因是因為您在第二個嵌套 if-else 中缺少逗號,並且在第三個嵌套 if-else 中缺少一個“else”語句。
正如你所看到的,當你以這種方式嵌套 if-else 時,它有點到處都是,並且很快就會失控。
當您執行ifelse
時,您將始終需要:
test
,測試的條件。yes
條件no
條件語法看起來像這樣ifelse(x$var>10, "Large", "Small")
。 當你按照你的方式嵌套你的 ifelse 時,你很快就會忘記這一點,因此缺少逗號,以及最后一個ifelse
中缺少的no
條件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.