2015-01-23 2 views
0

У меня есть следующая проблема: У меня есть data.frame с двумя столбцами. Я найду среднее значение y для сгруппированного значения x '[формулировка из hrbrmstr]. Пример:Найдите среднее значение y для сгруппированного значения x

x <- c(1,4,4,2,1,3,4,2,3,4) 
y <- c(2.23,5.56,5.53,3.32,2.32,4.21,5.60,3.43,4.32,5.59) 
my.data <- data.frame(x,y) 

> my.data 
x y 
1 1 2.23 
2 4 5.56 
3 4 5.53 
4 2 3.32 
5 1 2.32 
6 3 4.21 
7 4 5.60 
8 2 3.43 
9 3 4.32 
10 4 5.59 

Если я вычислить его вручную, то:

xx <- c(1,2,3,4) 
yy <- c(mean(c(2.23,2.32)),mean(c(3.32,3.43)),mean(c(4.21,4.32)),mean(c(5.56,5.53,5.60,5.59))) 
my.data.corr <- data.frame(xx,yy) 

Результат data.frame должно быть:

> my.data.corr 
xx yy 
1 1 2.275 
2 2 3.375 
3 3 4.265 
4 4 5.570 

Порядок хх в результате не имеет значения ,

Благодарим за помощь!

+0

Вы считаете, что просто берете первый 'y' для каждого значения' x'. Это правильно? – thelatemail

ответ

4

Если вы пытаетесь найти среднее значение y для сгруппированного значения x, ваш результат вывода неправильный.

library(dplyr) 

my.data %>% 
    group_by(x) %>% 
    summarise(yy=mean(y)) 

## x yy 
## 1 1 2.275 
## 2 2 3.375 
## 3 3 4.265 
## 4 4 5.570 

Если вы пытаетесь сделать что-то еще, пожалуйста, перефразируйте свой вопрос.

+1

Это именно то, что я хочу !!! Вы правы, наши результаты разные, даже если я не понимаю, почему существует разница между нашими расчетами? – Hans

+0

Вы совершенно правы! Моя ошибка заключалась в том, что я использовал «mean (4.21,4.32)» вместо «mean (c (4.21,4.32))», извините за это и большое спасибо за ваш ответ! – Hans

Смежные вопросы