Найти среднее значение столбца в наборе данных на основе значения другого столбца в R - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь найти средний возраст (значения в первом столбце), основываясь на количестве предметов в столбцах 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 голосов
/ 08 февраля 2019

Вы можете использовать пакет dplyr для этого.Приведенный ниже код сгруппирует данные по DX, затем для каждой группы сложит возраст и разделит на число для этого возраста

library(dplyr)

ADNI %>% 
  group_by(DX) %>% 
  summarise(avg_age = sum(AGE)/n()) 
0 голосов
/ 08 февраля 2019

Нет функции, которая может сделать это, но вот как вы можете решить вашу проблему.

Для среднего возраста нашей эры mean(data[,1] * data[,2])

Для среднего возраста MCI mean(data[,1] * data[,3])

Для среднего возраста Normal mean(data[,1] * data[,3])

Вам не нужно беспокоиться о нулях, потому что при умножении эти возрасты не учитываются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...