如何为另一个变量的重复测量的特定值计算一个变量的平均值?

时间:2018-11-23 13:06:17

标签: r statistics

我正在尝试计算男性首次接受基本R的平均年龄。

这是我的数据集

入场

 PatientID    Age    Sex    Admissions    Year
  123          25     0         1         2014
  123          27     0         2         2016
  456          50     1         1         2012
  789          73     1         1         2007
  789          81     0         4         2015

性别= 1是男性


我很确定平均值可以通过这种方式完成:

mean_age <- tapply(admissions$age, admissions$sex, mean)

但是我不知道如何预先计算最小值。显然,这将是他们的最低年龄或第一次入院的年龄。

我试图将min()包含在tapply中,但是它不起作用,我也尝试使用var <- tapply预先计算出来,但是当我尝试使用tapply中的变量作为均值时却不起作用

任何帮助将不胜感激。

编辑:我发布的虚拟数据是我拥有的数据集的精确复制。这项运动的原始问题是:“计算男性首次入院的平均年龄”

1 个答案:

答案 0 :(得分:4)

mean(admissions$Age[admissions$Sex==1 & admissions$Admissions==1])

这是基础。使用dplyrdata.table可以使用更漂亮的方法。这将采用招生的“年龄”列,根据性别和“招生”均等于1对其进行过滤,然后计算平均值。

使用基地还是比较整齐:

with(admissions, mean(Age[Sex==1 & Admissions==1]))

dplyr版本:

admissions %>% group_by(Sex) %>% filter(Admissions==1) %>% summarize(means=mean(Age))

这将为您提供初次入院时每种性别的平均年龄表。