reshape data by ID and add all values belong to one person in one row in R -


मेरे पास डेटा फ़्रेम दिखता है:

  आईडी V1 V2 V3 1 1 2 3 1 2 3 4 1 3 4 5 2 3 4 3 3 4 5 6 3 2 3 4  

मुझे डेटा फ्रेम का नयी आकार देने की जरूरत है ताकि सभी रिकॉर्ड एक व्यक्ति से सम्बंधित हों। इस तरह से एक ही पंक्ति:

  आईडी V1 V2 V3 V1_2 V2_2 V3_2 V1_3 V2_3 V3_3 1 1 2 3 2 3 4 3 4 5 2 3 4 5 3 4 5 6 2 3 4  

क्योंकि प्रत्येक व्यक्ति की अलग-अलग अभिलेखों की संख्या है, इसलिए प्रत्येक पंक्ति में नया डेटा फ्रेम की अलग-अलग लंबाई होगी यह कैसे प्राप्त कर सकता है?

एक सीधा रास्ता reshape2 पैकेज के साथ है , लेकिन आपको एक द्वितीयक आईडी जोड़ना होगा।

  ### अगली पंक्ति एक द्वितीयक आईडी चर mydf $ ID2 & lt; - एवे (mydf $ आईडी, mydf $ ID, FUN = seq_along) बनाता है लाइब्रेरी (रिशेप 2) डीएफएल एंड एलटी; - पिघल (आईआईडीएफ, आईडी.वर्स = सी ("आईडी", "आईडी 2")) डीसीसी (डीएफएल, आईडी ~ चर + आईडी 2) # आईडी V1_1 V1_2 V1_3 V2_1 V2_2 V2_3 V3_1 वी 3_2 वी 3_3 # 1 1 1 2 3 2 3 4 3 4 5 # 2 2 3 NA NA 4 NA NA 5 NA NA # 3 3 4 2 NA 5 3 NA 6 4 NA  

वैकल्पिक रूप से, जोड़ा जाने के बाद ऊपर बताए अनुसार "आईडी 2", आप सीधे बेस आर के reshape के साथ रीसेट करने के लिए भी कर सकते हैं कॉलम के आदेश भिन्न हैं, लेकिन डेटा एक जैसा है।

  reshape (mydf, direction = "wide", idvar = "ID", टाइमवर = "ID2") # आईडी V1.1 V2.1 V3.1 V1.2 V2.2 V3.2 V1.3 V2.3 V3.3 # 1 1 2 3 2 3 4 3 4 5 # 4 2 3 4 5 NA NA NA NA NA NA # 5 3 4 5 6 2 3 4 एनए एनए  

Comments