Данные
Data_point <- c('a','a','b','b','c','c')
Measurement <- c(2,4,6,8,4,10)
df <- data.frame(Data_point=Data_point, Measurement=Measurement)
Вы можете использовать mean
и which
, чтобы выбрать, какие значения вы хотите.Объединение этого в функцию дает желаемый результат.Как уже упоминалось, вероятно, для этого уже есть функция (вероятно, где-то в tidyverse
), но она используется только с базовым R.
average <- function(x) {
mean(df$Measurement[which(df$Data_point == x)])
}
sapply(unique(df$Data_point), average)
#[1] 3 7 7