簡體   English   中英

dplyr如何計算R中的條件變異?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM