[英]how calculate a conditional mutate in R with dplyr?
我有這個問題。 我想計算一個新變量,該變量將其他條件作為條件:
P46A是教育水平的變量,P47是該水平的年數。
這個想法是:
而且我使用dplyr:
Datos %>% mutate(newvariable= if_else(P46A %in% c(-98,-99),NA,
if_else(P46A %in% c(0,1), P47, if_else(P46A %in% c(2:4),P47+3,
if_else(P46A %in% c(5:7,11),P47+16, if_else(P46A %in% c(8,9),P47+23,P47+26))))))
換句話說,我想根據其他變量中的值來計算一個newvariable。 當我運行代碼R打印錯誤。
Error in mutate_impl(.data, dots) :
Evaluation error: `false` must be type logical, not double.
謝謝!
您也可以嘗試用case_when語句替換if_else語句。 它使代碼更清晰。
Datos %>% mutate(
newvariable= case_when(
P46A %in% c(-98, -99) ~ NA_real_,
P46A %in% c(0, 1) ~ P47,
P46A %in% c(5:7, 11) ~ P47 + 16,
P46A %in% 8:9 ~ P47 + 23,
TRUE ~ P47 + 26
)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.