Как найти среднее значение каждой точки данных в кадре данных (df) в R? - PullRequest
0 голосов
/ 07 июня 2018

Кадр данных (df):


Точка_данных |Измерение

a |2

a |4

b |6

b |8

с |4

с |10

Ответы [ 3 ]

0 голосов
/ 07 июня 2018

как предполагает Элин, dplyr может сделать это.Используя данные из Shique:

library(dplyr)
df %>% group_by(Data_point) %>% summarise_all(mean)
0 голосов
/ 07 июня 2018

A base R опция будет aggregate

aggregate(.~ Data_point, df1, mean)
0 голосов
/ 07 июня 2018

Данные

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
...