Допустим, мы вектор a = (10,23,57,37,59,25,63,33) и мы хотим вычислить частоту в ячейках 10-19,20-29,30-39,40-49,50-59,60-69. Выходные данные должны быть в форме вектора, в данном случае (1,2,2,2,1).
a = (10,23,57,37,59,25,63,33)
10-19,20-29,30-39,40-49,50-59,60-69
(1,2,2,2,1)
Другое базовое решение R заключается в использовании hist, т. Е.
hist
hist(a,plot = FALSE,breaks = seq(10,70,by=10))$counts # [1] 1 2 2 0 2 1
Вот решение:
a <- c(10, 23, 57, 37, 59, 25, 63, 33) low_val <- 10 high_val <- 70 a_breaks <- seq(low_val, high_val, 10) res <- cut(a, a_breaks, include.lowest = T) as.vector(table(res)) [1] 1 2 2 0 2 1
Мы можем использовать cut с table
cut
table
table(cut(a, breaks = c(-Inf, seq(10, 70, by = 10), Inf)))
Или другой вариант
table(findInterval, seq(10, 70, by = 10)))