我怎样才能得到' bfat'对于每个级别的年龄'给予一定水平的药物' (在这种情况下药物== 1)?我试过这个:
require(dplyr)
df<-data.frame(drug=c(1,1,1,1,2),age=c(1,2,3,1,1),bfat=c(10,30,3,4,7))
noDrug<-df%>%split(drug==1) #get only drug ==1
noDrug<-as.data.frame(noDrug$'TRUE')
mean.bfat.per.level.of.age <- noDrug%>%group_by(age) %>% summarise(mean(bfat)) #when drug==1
我希望得到3个值:
age1 mean bfat when drug=1: 7
age2 mean bfat when drug=1: 30
age3 mean bfat when drug=1: 3
答案 0 :(得分:2)
我们filter
'drug'为1的行,然后按'age'分组,并获得'{1}}'bfat'。
mean
如果同时加载df %>%
filter(drug==1) %>%
group_by(age) %>%
summarise(bfat= mean(bfat))
# age bfat
# (dbl) (dbl)
#1 1 7
#2 2 30
#3 3 3
和plyr
,请将最后一行代码更改为
dplyr