目標:使用ifelse語句在下面評估兩個單獨的列,即var1和var2,以在下面創建第三個組合列var3。例如,我想檢查每一列,如果它們都包含NA,則在第三列var3中需要NA。如果var1或var2包含-1,0或1,我希望它位於var3中在創建新列時如何在ifelse中處理NA
問題:打開所有的NAs。我知道評估新手存在一些愚蠢的問題,但我很想念它。
所需的輸出:
var1 var2 var3
1 NA 1
NA 1 1
NA NA NA
NA -1 -1
0 NA 0
重複的例子:
library(tidyverse)
df <- data.frame(var1 = c(1, 1, NA, NA, 0),
var2 = c(NA, 1, NA, -1, NA))
df_addvar3 <- df %>%
mutate(var3 = ifelse(var1 == NA | var2 == NA, NA,
ifelse(var1 == -1 | var2 == -1, -1,
ifelse(var1 == 0 | var2 == 0, 0,
ifelse(var1 == 1 | var2 == 1, 1, NA)))))
df_addvar3
考慮到你的例子,你並不需要'ifelse'語句,你可以做'mutate(var3 = pmax(var1,var2,na.rm = T))'或'mutate(var3 = coalesce(var1 ,VAR2))'。 – Lamia