Допустим, у меня есть следующие данные:
values = data.frame(score = c(1, 2, 3, 4, 5, 999, 2, 3, 999, 4),
score_2 = c(1, 4, 8 , 4, 999, 2, 3, 2, 1, 0))
values %>%
summarize(mean_score = mean(score),
mean_score_2 = mean(score_2))
Я хочу вычислить среднее значение для каждого из столбцов в наборе данных, игнорируя при этом значение «999».
Так что я могу сделать что-то вроде этого:
values %>%
filter_all(all_vars(!grepl('999',.))) %>%
summarize(mean_score = mean(score),
mean_score_2 = mean(score_2))
Но это удалит строки 6, 9 и 5 как из Score, так и Score_2 (потому что это местоположение 999). Как выборочно вычислить средние значения, игнорируя определенные значения, не удаляя целые строки?
Для score
результирующий вывод должен быть 3
, для score_2
результирующий вывод должен быть 2.78