计算因子的正确方法意味着使用dplyr

时间:2015-11-12 18:32:45

标签: r dplyr

我怎样才能得到' 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

1 个答案:

答案 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