[英]two conditions in one column and another condition in another column to make a new column in R
df$A(12, 12, 17, 17, 17, 99, 99, 56, 56, 56, 13, 13, 13, 89, 89, 89)
df$C(Aplus, Bplus, Aplus, A, Aplus, Dplus, A, A, Cminus, Dplus, Aplus, A, Dplus, Aminus, Aplus, Dplus)
df$D(mt, mt, mt, wt, wt, mt, mt, wt, wt, wt, mt, wt, wt, wt, mt, wt)
我想在底部创建一个新列 E,其中以下内容为真。
WT Aplus 等于 mt 和 Bplus
SS A 等于 wt,Cminus 等于 wt,Dplus 等于 wt
HH Aplus 等于 mt 或 Dplus
df$E(WT, WT, NA, NA, NA, HH, NA, SS, SS, SS, HH, NA, HH, NA, HH, HH)
df1 <- df %>% mutate(E = ifelse(D %in% c("A+" & "B+") & E == "mt", "WT"))
df1 <- df %>% mutate(E = ifelse(D %in% c("A" & "C-" & "D+") == "wt", "SS"))
df1 <- df %>% mutate(E = ifelse(D %in% c("A+" & "D+"), "HH"))
任何帮助将不胜感激,因为我无法获得上述 df$E output。 而对于我运行以实现等于 mt 和 Bplus 的 WT Aplus 的第一行代码,我得到了 5 WT 而不是 2 WT 的 output
df$E(WT, WT, WT, NA, NA, NA, NA, NA, NA, NA, WT, NA, NA, NA, WT, NA)
我们可以将case_when
用于多个条件
library(dplyr)
df %>%
mutate(E = case_when(D %in% c("A+", "B+") & E == 'mt' ~ 'WT',
D %in% c("A", 'C-', 'D+') == 'wt' ~ 'SS',
D %in% c('A+', 'D+') ~ "HH"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.