Нахождение суммы "между группами" квадратов - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть некоторые данные, которые выглядят так:

 October    November   Setting
 1           3.1        1
 1.3         1.2        2
 2.1         .7         1
 .8          .1         2

Что я хочу сделать, так это создать цикл for, который решает сумму квадратов между группами.

В основном я хочу вот что / вот небольшой код, который я собираюсь донести до меня. Это не совсем работает.

 month.sum = 0
 for i in Setting {
      month.sum <- month.sum + (group.mean(i) + grand.mean)^2
  }

Я хочу найти в основном это, как прямой перевод:

 (group mean(when the setting=1) + grand mean)^2 + (group mean(when the setting=2) + grand mean)^2

Я решил великое среднее, просто работая над моими способностями цикла. Спасибо!

1 Ответ

0 голосов
/ 09 ноября 2018

> df_result
# A tibble: 8 x 6
# Groups:   Setting [2]
  Setting Month    Value grand.mean group.mean month.sum
    <int> <chr>    <dbl>      <dbl>      <dbl>     <dbl>
1       1 October    1         1.29       1.72      9.08
2       2 October    1.3       1.29       0.85      4.57
3       1 October    2.1       1.29       1.72     36.3 
4       2 October    0.8       1.29       0.85     18.3 
5       1 November   3.1       1.29       1.72     81.7 
6       2 November   1.2       1.29       0.85     41.1 
7       1 November   0.7       1.29       1.72    145.  
8       2 November   0.1       1.29       0.85     73.1 

код

df_result <- df %>%
    gather("Month", "Value", -Setting) %>%
    mutate(grand.mean = mean(Value)) %>%
    group_by(Setting) %>%
    mutate(group.mean = mean(Value)) %>%
    mutate(month.sum = cumsum(group.mean + grand.mean)^2)

Данные

df <- read.table(text = "October    November   Setting
1           3.1        1
1.3         1.2        2
2.1         .7         1
.8          .1         2", header = TRUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...