Как сгруппировать data.frame для каждого целого числа строк? - PullRequest
1 голос
/ 23 октября 2019

Мне кажется, это очень простой вопрос, но мне не удается придумать эффективную идею.

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

  • столбец position, сгенерированный как seq(from = 1, to = nrow(df), by = 1)
  • столбец value, с некоторыми значениями, связанными с позицией

Я хочу сгруппировать фрейм данных каждые k строк (k является целым числомвход), а затем рассчитать среднее значение для каждой группы.

Функция dplyr group_by не позволяет мне группировать определенное целое число строк.

Как я могу это сделать? Есть ли способ вообще избежать создания позиции в столбце?

1 Ответ

1 голос
/ 23 октября 2019

Вот один вариант с gl из base R. Укажите значения n и k. n будет общим числом строк в наборе данных

library(dplyr)
k1 <- 5
df1 %>% 
  group_by(grp = as.integer(gl(n(), k = k1, n()))) %>% 
  summarise(value = mean(value))
...