В R, как я могу сгруппировать по диапазону? - PullRequest
1 голос
/ 14 января 2020

У меня есть один необработанный набор данных, как в приведенной ниже таблице.

  likes age
1  2295  61
2   740  69
3   210  57
4   207  49
5  1226  51
6  9016  63

Используя этот набор данных, мой желаемый вывод также похож на приведенную ниже таблицу

new_age        likes
age <60      1643
age >60      12051

new_age разделен на два диапазона , Один ниже 60, другой выше 60.

Не могли бы вы помочь сделать этот желаемый вывод?

Данные Dput ниже:

structure(list(likes = c(2295L, 740L, 210L, 207L, 1226L, 9016L), age = c(61, 69, 57, 49, 51, 63)), class = "data.frame", row.names = c(NA, -6L))

1 Ответ

4 голосов
/ 14 января 2020

Мы можем создать группу с логическим выражением

library(dplyr)
df1 %>%
    group_by(new_age = c('age > 60', 'age < 60')[(age < 60) + 1]) %>%
    summarise(likes = sum(likes))
# A tibble: 2 x 2
#  new_age  likes
#  <chr>    <int>
#1 age < 60  1643
#2 age > 60 12051
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...