年齢を異なるグループに分類する関数を作成しようとしています。
私のデータが次のとおりであるとします。
生年
1987 1995 1994 1981 1994 1989 1985 1987 1996 1981 1980 1994 1996 1983 1949 1988
1998 1977 1967 1968
私の関数は、誕生年を年齢に変換し、agebreaks と呼ばれるデータ フレームに基づいて 10 の異なるカテゴリのうちの 1 つにビン化するように記述されています。
>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() も使用してみましたが、役に立ちませんでした。助言がありますか?