/ / R: R में डेटा को कैसे पिघलाना है जहाँ पंक्ति मान कॉलम लेबल बन जाते हैं? - आर, पुनर्वसन, पिघल

आर: आर में डेटा कैसे पिघलें जहां पंक्ति मान स्तंभ लेबल बन जाते हैं? - आर, पुनर्वसन, पिघल

मेरे पास यह डेटा है

   RES  RANK1   RANK2   RANK3   RANK4   RANK5
1   3   3   5   16  1
2   3   1   2   5   16
3   3   5   15  10  1

मैं कैसे डेटा को ऐसे पिघलाता हूं कि RANK1 से RANK5 तक के मान परिवर्तनशील बन जाते हैं और RANK1 से RANK5 का मान बन जाता है।

डेटा द्वारा एकत्र किया गया था: (22) आइटमों की सूची में, शीर्ष 5 वरीयताओं का चयन करें।

नए डेटा का विश्लेषण किया जाएगा जैसे कि जवाब बहु प्रतिक्रिया है।

अपेक्षित आउटपुट होगा (उदा। RES = 1)

RES 1      2      3        5       10       15     16
1   RANK5         RANK2    RANK3                   RANK4
2   RANK2  RANK3  RANK1    RANK4                   RANK5
3   RANK5         RANK1    RANK2   RANK4    RANK3

धन्यवाद!

उत्तर:

जवाब के लिए 3 № 1

आप से करेंगे melt आपका डेटा और फिर dcast यह। क्योंकि आपके पास प्रत्येक संयोजन के लिए अद्वितीय मूल्य नहीं हैं, आपको एक से अधिक होने पर सभी मूल्यों को रखने के लिए किसी तरह की आवश्यकता होती है (जैसा कि यहां होता है) RES == 1 तथा VALUE == 3) का है। इस मामले में हम केवल उपयोग करने वाले मानों को संक्षिप्त करते हैं paste के साथ collapse तर्क:

dcast( melt( df , measure = 2:6 ) , RES ~ value , value.var = "variable" , fun = function(x) paste(x,collapse=";") , fill = ""   )
#  RES     1     2           3     5    10    15    16
#1   1 RANK5       RANK1;RANK2 RANK3             RANK4
#2   2 RANK2 RANK3       RANK1 RANK4             RANK5
#3   3 RANK5             RANK1 RANK2 RANK4 RANK3

का असर melt का उपयोग करते हुए RANK* माप चर के रूप में कॉलम हमें आईडी वेरिएबल्स के दो कॉलम के साथ एक लंबा डेटासेट देना है

head( melt( df , measure = 2:6 ) )
#  RES variable value
#1   1    RANK1     3
#2   2    RANK1     3
#3   3    RANK1     3
#4   1    RANK2     3
#5   2    RANK2     1
#6   3    RANK2     5