0

年齢を異なるグループに分類する関数を作成しようとしています。

私のデータが次のとおりであるとします。

生年

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() も使用してみましたが、役に立ちませんでした。助言がありますか?

4

1 に答える 1