【发布时间】:2016-03-18 18:46:13
【问题描述】:
我有以下数据框:
df<-data.frame(Date=rep(x=as.Date(c("2016/01/01", "2016/01/02")),each=12),
Group=rep(x=c("G1","G2"),each=6,times=2),
ID=rep(c("G1F1","G1F2","G1F3","G1M4","G1M5","G1M6","G2F1","G2F2","G2F3","G2M4","G2M5","G2M6"),times=2),
Gender=rep(c("Female","Male"),each=3,times=4),
Weight=c(c(100,100,100,100,120,140),rep(c(100,120,140,100,100,100),times=2),c(100,100,100,100,120,140)))
我想创建一个新列CountComp,它显示在给定日期,体重在每行中指定的个人体重上下 10 克以内的个人的同性别同组成员计数,例如至于得到:
df2<-data.frame(Date=rep(x=as.Date(c("2016/01/01", "2016/01/02")),each=12),
Group=rep(x=c("G1","G2"),each=6,times=2),
ID=rep(c("G1F1","G1F2","G1F3","G1M4","G1M5","G1M6","G2F1","G2F2","G2F3","G2M4","G2M5","G2M6"),times=2),
Gender=rep(c("Female","Male"),each=3,times=4),
Weight=c(c(100,100,100,100,120,140),rep(c(100,120,140,100,100,100),times=2),c(100,100,100,100,120,140)),
CountComp=c(c(2,2,2,0,0,0),rep(c(0,0,0,2,2,2),times=2),c(2,2,2,0,0,0)))
我对 R 非常陌生,并认为 dplyr 可以使用 group_by 和 mutate 函数提供解决方案,但到目前为止还没有找到。
【问题讨论】: