我正在尝试计算男性首次接受基本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中的变量作为均值时却不起作用
任何帮助将不胜感激。
编辑:我发布的虚拟数据是我拥有的数据集的精确复制。这项运动的原始问题是:“计算男性首次入院的平均年龄”
答案 0 :(得分:4)
mean(admissions$Age[admissions$Sex==1 & admissions$Admissions==1])
这是基础。使用dplyr
或data.table
可以使用更漂亮的方法。这将采用招生的“年龄”列,根据性别和“招生”均等于1对其进行过滤,然后计算平均值。
使用基地还是比较整齐:
with(admissions, mean(Age[Sex==1 & Admissions==1]))
dplyr版本:
admissions %>% group_by(Sex) %>% filter(Admissions==1) %>% summarize(means=mean(Age))
这将为您提供初次入院时每种性别的平均年龄表。