如果我有一个df:
> ID<-c("A","A","A","B","B","B","B","C","C","C","C")
> attr<-c("yes1","yes1","no","yes2","yes1","yes1","yes1","no","no","yes1","yes2")
> df = data.frame(ID, attr) ; df
ID attr
1 A yes1
2 A yes1
3 A no
4 B yes2
5 B yes1
6 B yes1
7 B yes1
8 C no
9 C no
10 C yes1
11 C yes2
拥有数千个 ID。我想添加另一列输出"yes"
每个 ID 的属性百分比,以及是否只有一个"no"
属性:
ID %yes #no
1 A 66.7 1
2 B 100 0
3 C 50 2
有没有办法整合行,类似于 SQL GROUP BY
?最终,这个新的 df 将对 ID 进行分类并添加到原始 df 中:
ID attr result
1 A yes1 Pos
2 A yes1 Pos
3 A no False
4 B yes2 TruePos
5 B yes1 TruePos
6 B yes1 TruePos
7 B yes1 TruePos
8 C no False
9 C no False
10 C yes1 Pos
11 C yes2 Pos