Усреднение нескольких строк в длинном наборе данных, удаление любого NAs

#r

#r

Вопрос:

У меня есть следующие данные (с 1000 строками):

ID оценка тест
1 45 1
1 55 2
1 23 3
1 56 4
2 82 1
2 52 2
2 NA 3
2 21 4

и т. Д. До 500 идентификаторов

Я пытаюсь удалить NAs и вычислить среднее значение каждого балла учащихся, прежде чем двигаться дальше. Так что это будет выглядеть примерно так

ID Оценка
1 44.75
2 51.7
3 56.4

и т. Д. До 500

Я действительно не могу найти подходящий R-код, который можно было бы использовать для этого. Любые рекомендации будут оценены.

Ответ №1:

Мы можем группировать по «идентификатору» и summarise «оценке», применяя mean с na.rm = TRUE

 library(dplyr)
df1 %>%
   group_by(ID) %>%
   summarise(Score = mean(Score, na.rm = TRUE))
 

Или с aggregate помощью from base R

 aggregate(Score ~ ID, df1, mean, na.rm = TRUE, na.action = NULL)