R-查找年龄列表的平均值

问题描述

我正在处理一个数据框,并希望计算出球员在棒球比赛中首次亮相的平均年龄。

我可以得到答案,但是我有点困惑为什么我会以两种方式做相同的事情而得到不同的输出

首先,当我运行以下代码时,我得到了正确的均值:

mean(as.numeric(players$debut_age)/365,na.rm=TRUE)

但是,当我将其重新组织为管道时,它只会在“ beauty_age”中打印日期向量:

players$debut_age %>% as.numeric()/365 %>% mean(na.rm=TRUE)

我确定我缺少一些简单的东西,但是我想知道为什么这些东西不能产生相同的结果。

解决方法

我们可以使用divide_by

library(dplyr)
players$debut_age %>%       
       as.numeric() %>%
       magrittr::divide_by(365) %>%
       mean(na.rm = TRUE)

或将as.numeric/放在{}的块内

players$debut_age %>% 
      {as.numeric()/365} %>% 
       mean(na.rm=TRUE)