2015-12-23 8 views
6

सामान्य रूप से, मैं किसी अन्य डेटा फ्रेम में कारक मानों के संबंध में डेटा फ्रेम के एक कॉलम में मूल्यों को वर्गीकृत कैसे कर सकता हूं?आर में, आप किसी अन्य डेटा फ्रेम में श्रेणियों के आधार पर एक डेटा फ्रेम में मूल्यों को वर्गीकृत कैसे करते हैं?

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 

मैं DF3 के रूप में चाहते हैं: उदाहरण के लिए, DF1 और df2 दिया मैं DF3 (या अद्यतन DF1) उत्पन्न करने के लिए चाहते हैं

लेकिन मुझे नहीं पता कि अंतराल प्रकार (यानी ए या बी) के अनुसार df2_cut मूल्यों को वर्गीकृत कैसे करें।

उत्तर

5

हम findInterval का उपयोग कर सकते हैं। आउटपुट एक न्यूमेरिक इंडेक्स होगा जिसे हम 'एजटाइप' से संबंधित तत्व प्राप्त करने के लिए उपयोग करते हैं।

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=FALSE में साथ cut

संबंधित मुद्दे