2015-12-23 1 views
6

一般に、データフレームのある列の値を、別のデータフレームの係数値に関してどのように分類できますか? Iカット使用Rでは、あるデータフレームの値を別のデータフレームの範囲に基づいてどのように分類しますか?

NewAge Type 
    5  A 
25  A 
18  B 
    9  A 
43  A 
15  B 
17  B 

()間隔

df2_cut <- data.frame(NewAge, 
         "AgeRange" = cut(NewAge, 
             breaks=AgeStart, 
             right=F, 
             include.lowest=T)) 
> df2_cut 
    NewAge AgeRange 
1  5 [0,10) 
2  25 [20,30) 
3  18 [10,20) 
4  9 [0,10) 
5  43 [40,50] 
6  15 [10,20) 
7  17 [10,20) 
を生成する:

> df1 
    NewAge 
1  5 
2  25 
3  18 
4  9 
5  43 
6  15 
7  17 

> df2 
    AgeStart AgeEnd AgeType 
1  0  10  A 
2  10  20  B 
3  20  30  A 
4  30  40  B 
5  40  50  A 

がIとしてDF3たい:例えば、DF1およびDF2所与IはDF3(または更新DF1)を生成したいと思い

しかし、df2_cutの値を間隔の種類(つまりAまたはB)に応じて分類する方法はわかりません。

答えて

5

findIntervalを使用できます。出力は、 'AgeType'から対応する要素を取得するために使用する数値インデックスになります。

df3 <- transform(df1, Type=df2$AgeType[findInterval(NewAge, df2$AgeStart)]) 
df3 
# NewAge Type 
#1  5 A 
#2  25 A 
#3  18 B 
#4  9 A 
#5  43 A 
#6  15 B 
#7  17 B 

かとlabels=FALSEcut

関連する問題