Я пытаюсь написать функцию, которая вставляет возраст в разные группы.Binning age in R
Пусть мои данные следующие:
год рождения
1987 1995 1994 1981 1994 1989 1985 1987 1996 1981 1980 1994 1996 1983 1949 1988
1998 1977 1967 1968
И моя функция написана, чтобы преобразовать год рождения в возрасте, а затем бен их в 1 из 10 различных категорий на основе на фрейме данных, который называется возрастом:
>agebreaks
Category Birth.min Birth.max
1 14 to 19 years 2000 1995
2 20 to 24 years 1994 1990
3 25 to 34 years 1989 1980
4 35 to 44 years 1979 1970
5 45 to 54 years 1969 1960
6 55 to 59 years 1959 1955
7 60 to 64 years 1954 1950
8 65 to 74 years 1949 1940
9 75 to 84 years 1939 1930
10 85 years and over 1959 1864
bin.age <- function(burthyear,agebreak,2014){
p.ages <- yyyy-df$Age
ab <- as.data.frame(agebreak)
min.ab <- yyyy-ab$Birth.min
max.ab <- yyyy-ab$Birth.max
avec <- sort(c(min.ab[1],max.ab[1],min.ab[2],max.ab[2],min.ab[3],max.ab[3],min.ab[4],max.ab[4],min.ab[5],max.ab[5],min.ab[6],max.ab[6],min.ab[7],max.ab[7],min.ab[8],max.ab[8],min.ab[9],max.ab[9],min.ab[10],max.ab[10]))
tmp <- findInterval(p.ages, avec)
tt <- table(tmp)
names(tt)<-c("14 to 19 years","20 to 24 years","25 to 34 years","35 to 44 years","45 to 54 years","55 to 59 years","60 to 64 years","65 to 74 years","75 to 84 years","85 years and over")
return(tt)
}
То, что я хочу, это все от 14 до 19-летних группироваться, от 20 до 24-летних группироваться, и так далее. То, что я получаю вместо желаемых 10 групп, составляет 20 18 групп. Я пробовал использовать cut(), но безрезультатно. Какие-либо предложения?
Работал как очарование! Спасибо. – Archimeow