[英]ifelse in R: alternatives to nesting
我編寫了一系列ifelse語句,這些語句在數據框中創建了新列。 例:
rf$rs.X<- ifelse(rf$chl==0 & rf$dm=="y" & rf$gdr=="m" & rf$smk=="n" & rf$age>=70 & rf$sbp>=160, ">=40%", NA)
當我運行其他ifelse語句時,它們會覆蓋前一個語句,因為我將其映射到數據框中的同一新列(即,我所有的ifelse語句都以相同的rf $ rs.X開頭)。
我知道可以為每個語句指定一個要創建的新列,但是我有68個ifelse語句,並且我不想為每個語句創建一個新列:我想要一個新列。
要解決此問題,我嘗試嵌套所有68條ifelse語句,但是它似乎不起作用(當我嘗試運行它時,我得到一個藍色加號(+))。 在這里閱讀完之后,嵌套似乎有一個限制(n = 50)。
因此,對於一系列ifelse語句,如何將所有輸出輸出到數據框中的同一列,而ifelse語句不會覆蓋前一個呢?
謝謝!
我會這樣寫:
rf$rs.X<- with( rf, ifelse(chl==0 & dm=="y" & gdr=="m" &
smk=="n" & age>=70 & sbp>=160, ">=40%", NA)
然后,下一個(例如,針對低sbp情況,可以使用rs.X值作為替代:
rf$rs.X<- with( rf, ifelse(chl==0 & dm=="y" & gdr=="m" &
smk=="n" & age>=70 & sbp < 160, "30-39%", rs.X)
這樣,不合格行的值就不會被覆蓋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.