我有一个简单的问题。我想改变一个新列,如下所示。
DF<-data.frame(id=c(1,1,2,3,3),code=c("1","0","1","0","0"))
> DF
id code
1 1 1
2 1 0
3 2 1
4 3 0
5 3 0
期望的输出:
id code type
1 1 1 mix
2 1 0 mix
3 2 1 A
4 3 0 B
5 3 0 B
有热心帮忙的吗?
也许在 in 中设置条件case_when
是您正在寻找的。
library(dplyr)
DF %>%
group_by(id) %>%
mutate(type = case_when(n_distinct(code) > 1 ~ 'mix',
all(code == 1) ~ 'A',
all(code == 0) ~ 'B')) %>%
ungroup
# id code type
# <dbl> <chr> <chr>
#1 1 1 mix
#2 1 0 mix
#3 2 1 A
#4 3 0 B
#5 3 0 B
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句