更新时间:2023-02-18 09:15:16
library(tidyverse)
data%>%
group_by(id)%>%
filter(1==length(unique(colour)),!duplicated(colour))
# A tibble: 4 x 3
# Groups: id [4]
id colour subgroup
<fct> <fct> <fct>
1 1 red lightred
2 2 blue lightblue
3 3 red lightred
4 5 green darkgreen
使用基本R:
subset(data,as.logical(ave(colour,id,FUN=function(x)length(unique(x))==1& !duplicated(x))))
id colour subgroup
1 1 red lightred
2 2 blue lightblue
4 3 red lightred
8 5 green darkgreen