मेरे पास एक विशाल डेटासेट है जिसमें प्रत्येक कॉलम (पंक्ति) के लिए कई मान शामिल हैं।एक कॉलम को एकाधिक कॉलम में विभाजित करना
data <- data.frame(subject = c(1:8), sex = c(1, 2, 2, 1, 2, 1, 1, 2),
age = c(35, 29, 31, 46, 64, 57, 49, 58),
v1 = c("2", "0", "3,5", "2 1", "A,4", "B,1,C", "A and B,3", "5, 6 A or C"))
> data
subject sex age v1
1 1 1 35 2
2 2 2 29 0
3 3 2 31 3,5 # separated by a comma
4 4 1 46 2 1 # separated by a blank space
5 5 2 64 A,4
6 6 1 57 B,1,C
7 7 1 49 A and B,3
8 8 2 58 5, 6 A or C
मैं पहली बार चौथे स्तंभ में पत्र (A
, B
, A and B
, ...) निकालना चाहते हैं (v1
) सिर्फ इस तरह एकाधिक स्तंभों में चौथे स्तंभ विभाजित करते हैं, और उसके बाद: यहाँ एक सरल नमूना dataframe है :
subject sex age x1 x2 x3 x4 x5 x6
1 1 1 35 0 1 0 0 0 0
2 2 2 29 0 0 0 0 0 0
3 3 2 31 0 0 1 0 1 0
4 4 1 46 1 1 0 0 0 0
5 5 2 64 0 0 0 1 0 0
6 6 1 57 1 0 0 0 0 0
7 7 1 49 0 0 1 0 0 0
8 8 2 58 0 0 0 0 1 1
जहां 1 विषय x2 पर ले जाता है 1, क्योंकि यह मूल डेटासेट में v1 पर 2 लेता है, 3 विषय दोनों x3 और x5 में 1 लेता है, क्योंकि यह मूल डेटासेट में v1 पर 3 और 5 लेता है, और इसी तरह।
मैं इस प्रश्न पर किसी भी मदद की सराहना करता हूं। बहुत बहुत धन्यवाद।
आपको बहुत बहुत धन्यवाद। आपकी आर स्क्रिप्ट बहुत अच्छी तरह से काम करती है। – user187454
आपके अपडेट के लिए धन्यवाद। मेरे पास एक अतिरिक्त सवाल है। यहां मैं केवल एक साधारण डेटासेट देता हूं जिसमें v1 अधिकतम मान "6" लेता है। मेरे वास्तविक डेटा में, चूंकि यह बहुत बड़ा है, क्या यह स्वयं को निर्दिष्ट करने के बजाय स्वचालित रूप से v1 के अधिकतम मान को निर्धारित करने का एक आसान तरीका है? धन्यवाद। – user187454
बहुत बहुत धन्यवाद, आप बहुत उपयोगी हैं। – user187454