r - 计算因子的正确方法是使用 dplyr

标签 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

最佳答案

我们过滤“drug”为 1 的行,然后按“age”分组,并获取“bfat”的平均值

df %>% 
   filter(drug==1) %>%
   group_by(age) %>% 
   summarise(bfat= mean(bfat))
#  age  bfat
#  (dbl) (dbl)
#1     1     7
#2     2    30
#3     3     3

如果 plyrdplyr 都已加载,请将最后一行代码更改为

-- %>%
   dplyr::summarise(bfat = mean(bfat))

关于r - 计算因子的正确方法是使用 dplyr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33678742/

相关文章:

r - 在 R 中的 cumsum 函数中生成最小值

r - 如何根据一列中的值对数据进行装箱,并计算另一列中的出现次数(排除 R 中的重复项)?

r - 当 se.fit=TRUE 时,Predict 无法显示预测的标准误差

r - 在R中使用dplyr查找每组的最大值

R:按组和值向量过滤的更好方法?

r - Dplyr递归增长数据帧

r - 数据框排列/重新排列和删除重复列

r - Plotly - 更改下拉菜单会禁用箱线图分组

r - 计算净利润

r - 如何让purrr map 函数运行得更快?