Суммируйте переменные и добавляйте результат в существующий фрейм данных. - PullRequest
0 голосов
/ 13 октября 2018

Мне нужно сгруппировать по "id_group" и найти среднюю цену, а затем добавить ее в существующую df.

summarise поможет нам найти среднюю цену после group_by, но как мне это сделать?добавить эту новую переменную в существующий df?mutate также может не помочь, так как не будет summarise, но будет повторять записи переменной группировки.

Я тоже пробовал ave(), но не помогло.Любое другое решение?

Существующий фрейм данных

1. id  group  value1 value2
    1.   a      10       1.2 
    2.   a      20       1.3
    3.   b      100      5.1 
    4.   b      200      5.4

Требуется вывод:

 1. id  group  value  grp.median.values1 grp.median.values2 
    1.   a      10     10                  1.2
    2.   b      100    100                 5.1

1 Ответ

0 голосов
/ 13 октября 2018

Мутация медианы после исходных значений не имеет смысла.Идея summarise() состоит в том, чтобы свернуть множество значений для их представителей.

Ваш конечный выходной пример просто печатает одно значение для каждой группы (первое value1 и первое value2 в a / первое value1 и сначала value2 в b).
Я думаю, это ничего не значит.

Свернуть много значений до единого резюме (summarise()).

[http://r4ds.had.co.nz/transform.html#introduction-2][1]

Я думаю, вы уже знаете, как:

library(tidyverse)

df <-
  tribble(
    ~id, ~group, ~value1, ~value2,
    "1.", "a", 10, 1.2,
    "2.", "a", 20, 1.3,
    "3.", "b", 100, 5.1,
    "4.", "b", 200, 5.4,
  )

df %>%
  group_by(group) %>%
  summarise_if(is.numeric, median)

## # A tibble: 2 x 3
##   group value1 value2
##   <chr>  <dbl>  <dbl>
## 1 a         15   1.25
## 2 b        150   5.25
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...