Создание пробелов в наборе данных - PullRequest
1 голос
/ 17 марта 2019

Это может быть очень простой в R, но я пытаюсь придумать, как это сделать, и не знаю, как это сделать.

У меня есть это:

Age Count 1 5 2 1 3 2 4 1 5 1 и я хочу это:

Age Count 1-5 10

Ответы [ 2 ]

2 голосов
/ 17 марта 2019

Вы можете сделать это с помощью функции cut.

Это установит age в интервалах, указанных в аргументе breaks.

d$int <- cut(d$Age, breaks = c(-Inf, 5), labels = "1-5") # create your new interval

#d
#   Age Count int
# 1   1     5 1-5
# 2   2     1 1-5
# 3   3     2 1-5
# 4   4     1 1-5
# 5   5     1 1-5

Используйте aggregateдо sum по новой int колонке

aggregate(Count ~ int, data=d, sum)
#    int Count
# 1 1-5    10

Данные:

d <- read.table(text = "Age Count
  1     5 
                2     1 
                3     2 
                4     1 
                5     1", header=T)
0 голосов
/ 17 марта 2019

Использование dplyr

library(dplyr)
df %>% 
  mutate(Int=findInterval(Age,c(1,5),rightmost.closed = T),
         Age=ifelse(Int==1,"1-5",Age)) %>% 
  group_by(Age) %>% 
 summarise(Count=sum(Count))
# A tibble: 1 x 2
  Age   Count
  <chr> <int>
1 1-5      10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...