Среднее значение данных в r по значению столбца - PullRequest
1 голос
/ 21 января 2020

Я пытаюсь автоматизировать усреднение данных во фрейме данных, который имеет такое же значение в столбце.

Здесь код для симулированного фрейма данных

col1 <- c(1,1,1,2,2,2,3,3,3)
col2 <- c(10,20,15,5,8,7,30,1,25)
col3 <- c(.5,.4,.2,.2,.2,.1,.4,.5,.9)
testdf <- data.frame(col1,col2,col3)

И вывод из этот фрейм данных

testdf
  col1 col2 col3
1    1   10  0.5
2    1   20  0.4
3    1   15  0.2
4    2    5  0.2
5    2    8  0.2
6    2    7  0.1
7    3   30  0.4
8    3    1  0.5
9    3   25  0.9

Что я пытаюсь сделать, это получить вывод, который дает мне средние значения в столбцах 2 и 3 для всех данных с одинаковым значением в столбце 1 (т. е. среднее значение для значений столбца 2, когда значения столбца 1 равны 1, равно 15, а среднее значение для столбца 3, когда значения столбца 1 равны 1, составляет .367)

1 Ответ

2 голосов
/ 21 января 2020

Мы можем использовать aggregate из base R

aggregate(.~ col1, testdf, mean)

Или с dplyr

library(dplyr)
testdf %>%
  group_by(col1) %>%
  summarise_all(mean)

Или с data.table

library(data.table)
setDT(testdf)[, lapply(.SD, mean), by = col1]
...