r - Split data frame by a repetitive column -


मेरे पास ऐसा डेटा फ्रेम है:

  p1 = rnorm (7) p2 = rnorm (7) पी 3 = सी (1,1,2,2,3,3,3) df = डेटा.फ्रेम (पी 1, पी 2, पी 3) डीएफ पी 1 पी 2 पी 3 1 -0.7843568 0.6383588 1 2 -0.4073465 0.3480860 1 3 0.2799414 - 0.1938586 2 4 -1,3496633 -0,5271080 2 5 -1,5750376 0,6178624 3 6 -0,1030045 0,8642336 3 7 0,5839070 -0,9723264 3  

मैं डेटा फ्रेम विभाजित कर सकते हैं कैसे इतना है कि मैं की तरह एक डेटा फ्रेम हो सकता है इस:

  1 1 2 2 3 3 1 -0,7843568 0,6383588 0,2799414 -0,1938586 -1,5750376 0,6178624 2 -1,3496633 -0,5271080 -0,4073465 0,3480860 -0,1030045 0,8642336 3 0,5839070 -0,9723264  

आप या तो reshape से base R से उपयोग कर सकते हैं या अन्य पैकेजों का उपयोग करना पहले चरण में, हम उद्देश्य को समूह के लिए एक indx कॉलम बना रहे हैं आप p3 के प्रत्येक समूह के लिए अनुक्रम बनाने के लिए ave का उपयोग कर सकते हैं, अर्थात पहले दो तत्वों ( p3 = 1 ), इसी इंडक्स होगा 1,2 और शेष समूह के लिए भी ऐसा ही होगा इंडक्स निर्माण चरण के बाद, आप सीधे reshape का उपयोग कर सकते हैं और दिशा से विस्तृत निर्दिष्ट कर सकते हैं।

(डीएफ 1, आईडीआरआर = 'इंडक्स', टाइमवायर = 'पी 3', दिशा = 'चौड़ा'))
  df1 & lt; - ट्रांसफॉर्म (डीएफ, इंडक्स = एवे (पी 3, पी 3, फ़न = सीक_आँग)) # indx P1.1 P2.1 P1.2 p2.2 p1.3 p2.3 # 1 1 -0,7843568 0,6383588 0,2799414 -0,1938586 -1,5750376 0,6178624 # 2 2 -0,4073465 0,3480860 -1,3496633 -0,5271080 -0,1030045 0,8642336 # 7 3 NA NA NA एनए 0.5839070 -0.9723264  

या आप getxID से splitstackshape से indx कॉलम और उत्पन्न करने के लिए उपयोग कर सकते हैं यह reshape

  लाइब्रेरी (स्प्लिटस्टैक्सशैप) नोज़र (getanID (df, 'p3'), direction = 'wide', idvar = '। Id' के साथ संयोजन में है, टाइमवायर = 'पी 3') # .id p1.1 p2.1 p1.2 p2.2 p1.3 p2.3 # 1: 1 -0.7843568 0.6383588 0.2799414 -0.1938586 -1.57503 76 0.6178624 # 2: 2 -0.4073465 0.3480860 -१.३४९६६३३ -.५२,७१,०८० -०.१०३००४५ .८६,४२,३३६ # 3: 3 ना ना ना ना .५८,३९,०७० -0.९७,२३,२६४  

या इसका उपयोग करते dcast / पिघल । आप भरण तर्क निर्दिष्ट कर सकते हैं। डिफ़ॉल्ट एनए होगा। यहां, मैंने '' का इस्तेमाल किया है, लेकिन यह कॉलम कक्षाओं को वर्ण में परिवर्तित कर देगा।

  लाइब्रेरी (रेशेप 2) dcast (पिघल (डीएफ 1, आईडी.वर = सी ( 'पी 3', 'indx')), indx ~ p3 + चर, value.var = 'मान', को भरने = '') # indx 1_p1 1_p2 2_p1 2_p2 3_p1 3_p2 # 1 1 -0,7843568 0,6383588 0,2799414 -0,1938586 -1,5750376 0,6178624 # 2 2 -0.4073465 0.348086 -1.3496633 -0.527108 -0.1030045 0.8642336 # 3 3 0.583907 -0.9723264  

या tidyr

  पुस्तकालय का उपयोग कर (डीएफ 1, वार, वैल, पी 1: पी 2)% & gt;% एकजुट (पी 3वीआर, पी 3, वर्)% & gt;% प्रसार (पी 3वाआर, वैल, भर = 0) # इंडक्स 1_p1 1_p2 2_p1 2_p2 3_p1 3_p2 # 1 1 -0,7843568 0,6383588 0,2799414 -0,1938586 -1,5750376 0,6178624 # 2 2 -0,4073465 0,3480860 -1,3496633 -0,5271080 -0,1030045 0,8642336 # 3 3 0,0000000 0,0000000 0,00000 00 0.0000000 0.5839070 -0.9723264  

Comments

Popular posts from this blog

apache - 504 Gateway Time-out The server didn't respond in time. How to fix it? -

c# - .net WebSocket: CloseOutputAsync vs CloseAsync -

c++ - How to properly scale qgroupbox title with stylesheet for high resolution display? -