मेरे पास एक डेटा फ़्रेम और दो पूर्णांक वाला नाम है left
और right
।
मैं डेटा फ्रेम का एक सबसेट ऐसे तरीके से बनाना चाहता हूं कि वैक्टर में संख्याएं उप-भाग में शामिल होने वाले कॉलम की सीमा को इंगित करेगी।
> उदाहरण के लिए, डेटा फ्रेम में एनथ पंक्ति के लिए, मैं मान को df [n, left [n]: right [n]
रखना चाहते हैं। मैंने ऐसा करने की कोशिश की mapply ()
:
aligned_rows & lt; -apply (df, 1, फ़ंक्शन (x) mapply (फ़ंक्शन (y, z) x [y
यह कमांड चाल करता है:
as.data.frame (t (mapply (फ़ंक्शन (x, y, z) df [x, y : Z], x = seq_len (nrow (df)), y = left, z = right)))
यहाँ एक उदाहरण है:
Set.seed (10) df & lt; - डेटा.फ्रेम (दोहराएं (8, रनफ (4))) # एक्स 1 एक्स 2 एक्स 3 एक्स 4 एक्स 5 एक्स 6 एक्स 7 एक्स 8 # 0.51 0.09 0.62 0.11 0.05 0.86 0.41 0.77 # 0.31 0.23 0.43 0.60 0.26 0.62 0.71 0.36 # 0.43 0.28 0.65 0.36 0.40 0.78 0.84 0.54 # 0.69 0.27 0.57 0.43 0.84 0.36 0.24 0.09 बाएं & lt; -c (1,3 , 5, 7) सही & lt; - c (2,4,6,8) as.data.frame (t (mapply (कार्य (x, y, z) df [x, y: z], x = seq_len ( Nrow (DF)), वाई छोड़ दिया =, z = रिग एचटी)))
पैदावार
# x1 x2 # 0.51 0.09 # 0.43 0.60 # 0.40 0.78 # 0.24 0.09
< P> इसके लिए काम करने के लिए, बाएं
और right
द्वारा परिभाषित प्रत्येक श्रेणी में तत्वों की समान संख्या होनी चाहिए इसके अलावा, दोनों बायां
और सही
में कई तत्व होते हैं क्योंकि इसमें df
में पंक्तियाँ हैं।
Comments
Post a Comment