根据R中另一列的值查找数据集中某列的平均值

时间:2019-02-08 01:22:32

标签: r

我正在尝试根据以下数据集中的AD,MCI和Normal列中的主题数来找到平均年龄(第一列中的值)。基本上,我需要在AD列,MCI列然后是Normal列中获得受试者的平均年龄。是否有一个R函数根据另一列中存在非零数字来取另一列的平均值?谢谢!

  table(ADNI$AGE, ADNI$DX)
       AD MCI Normal
  55.6  1   0      0
  55.9  1   0      0
  56.2  2   1      0
  56.3  0   1      0
  57.8  3   1      0
  58.4  0   0      2

2 个答案:

答案 0 :(得分:0)

没有功能可以做到这一点,但这是解决问题的方法。

对于AD mean(data[,1] * data[,2])的平均年龄

MCI mean(data[,1] * data[,3])的平均年龄

正常mean(data[,1] * data[,3])的平均年龄

您不必担心零,因为当您相乘时,这些年龄不会被考虑在内。

答案 1 :(得分:0)

您可以使用dplyr软件包执行此操作。下面的代码将按DX对数据进行分组,然后将每个年龄段的总和除以该年龄段的计数

library(dplyr)

ADNI %>% 
  group_by(DX) %>% 
  summarise(avg_age = sum(AGE)/n())