这在R语言中可能是非常基本的,但是我想尝试一种方法来做到这一点,却不知道如何使用谷歌搜索。
我有这个:
Age Count
1 5
2 1
3 2
4 1
5 1
我想要这个:
Age Count
1-5 10
答案 0 :(得分:2)
您可以使用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)
答案 1 :(得分:0)
使用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