【发布时间】:2021-06-30 20:34:52
【问题描述】:
我需要创建一个新列,其中包含其他几列中的总和值,但有条件。
我的数据是
ID <- c(A,B,C,D,E,F)
Q1 <- c(0,1,7,9,na,3)
Q2 <- c(0,3,2,2,na,3)
Q3 <- c(0,0,7,9,na,3)
dta <- as.data.frame (ID,Q1,Q2,Q3)
仅当值 4,则应忽略结果。我需要保留只有“na”的行。
结果应该是这样的
Result
0
4
na
na
na
9
我试过了:
library(dplyr)
dta %>% filter(Q1 < 4) %>% mutate(Result = rowSums(.[2:4]))
但是,所有值 > 4 的行都消失了,我一次只能过滤一行。我也试过:
dta$Result <- ifelse(c("Q1", "Q2", "Q3") < 4, rowSums(.[2:4]), NA)
但是我所有的结果都是“na”
【问题讨论】: