Как получить сумму элементов в разрыве из функции вырезания - R вопрос - PullRequest
0 голосов
/ 19 февраля 2019
data <- c(1, 2, 3, 7, 8, 9, 11 , 18)
c1 <- cut(data, breaks =  seq(0, 20, 5) , labels=1:4)

Я хотел бы рассчитать сумму для элементов в данных, которые находятся в первом перерыве, и среднее количество элементов во втором перерыве.

Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Предложение MrFlick - это то, что я искал.

sum(data[c1=="1"]); 
mean(data[c1=="2"]);
0 голосов
/ 19 февраля 2019

Самое простое, на мой взгляд, это использовать data.frame подход с dplyr.Затем вы можете получить групповые сводки для каждого из ваших cut классов с group_by() и summarise().

library(dplyr)
data <- data.frame(d = c(1, 2, 3, 7, 8, 9, 11 , 18))

data %>% 
  mutate(cut = cut(d, breaks =  seq(0, 20, 5) , labels=1:4)) %>% 
  group_by(cut) %>% 
  summarise(sum = sum(d), mean = mean(d))

# A tibble: 4 x 3
  cut     sum  mean
  <fct> <dbl> <dbl>
1 1         6     2
2 2        24     8
3 3        11    11
4 4        18    18
...