我有一个表,并按两列将其分组。在每个组中,我想更改几列。如果一列(组中)的总和为0,则此列中的每一行都应更改为NA。最后,我要一张起始表,但要用NA而不是0。
我尝试过:
table_neu <- table %>%
group_by(A,B) %>%
mutate_at(.vars = vars(C_01:C_12),
.funs = funs(case_when(
sum(.) == 0 ~ NA,
TRUE ~ .)),
na.rm = TRUE) %>%
ungroup()
我收到此错误,不知道出了什么问题。
情况3(
colsum(C_01) == 0 ~ NA
)必须是双面公式,而不是逻辑vectorTraceback:
尝试使用:
library(dplyr)
table_neu <- table %>%
group_by(A,B) %>%
mutate_at(vars(C_01:C_12),~case_when(
sum(., na.rm = TRUE) == 0 ~ NA_real_,
TRUE ~ .)) %>%
ungroup()