[英]R. mutate new variable based on conditions
我有一個包含三個變量(v1、v2 和 v3)的數據框 (zz)。 我想根據某些條件改變一個新變量 v4。
v1 <- c(4, 4, 4, 4, 3, 5, 6, 7, 2, NA )
v2 <- c(6, 2, 3, 3, 4, 4, 5, 7, NA, 4)
v3 <- c(2, 2, 1, 1, 1, 2, 1, 0, NA, NA)
zz <- data.frame(v1, v2, v3)
zz = mutate(zz, v4 = ifelse( v3<=1, (v1+v2)/2,
ifelse( ?????)
任何指導都會有所幫助
您可以使用case_when
來指定條件。 條件 3 和 4 可以使用coalesce
組合。
library(dplyr)
zz %>%
mutate(v4 = case_when(v3 <= 1 ~ (v1 + v2)/2,
v3 > 1 ~ pmax(v1, v2),
TRUE ~ coalesce(v1, v2)))
# v1 v2 v3 v4
#1 4 6 2 6.0
#2 4 2 2 4.0
#3 4 3 1 3.5
#4 4 3 1 3.5
#5 3 4 1 3.5
#6 5 4 2 5.0
#7 6 5 1 5.5
#8 7 7 0 7.0
#9 2 NA NA 2.0
#10 NA 4 NA 4.0
你可以試試
mutate(zz,
v4 = ifelse(v3 <= 1,
rowMeans(cbind(v1, v2), na.rm = TRUE),
pmax(v1, v2, na.rm = TRUE)
)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.