Split-Apply-Combine
डेटा साइंस में एक आम समस्या यह होती है कि आप अपने data frame को किसी grouping के अनुसार विभाजित करें, फिर हर group पर कोई transformation लागू करें, और अंत में उन हिस्सों को वापस जोड़कर एक ही data frame बना दें. R में समस्याओं के इस वर्ग को इतना आम माना जाता है कि इसे split-apply-combine नाम दिया गया है. Intermediate R for Finance में, आप ऐसी कई समस्याओं और उन्हें हल करने के उपयोगी फंक्शन की पड़ताल करेंगे, लेकिन फिलहाल, चलिए एक सरल उदाहरण करते हैं.
मान लीजिए, cash data frame के लिए, आप company A के cash_flow को दोगुना और company B के cash_flow को तीन गुना करना चाहते हैं:
grouping <- cash$company
split_cash <- split(cash, grouping)
# हर लिस्ट एलिमेंट के cash_flow कॉलम को ऐसे एक्सेस कर सकते हैं:
split_cash$A$cash_flow
[1] 1000 4000 550
split_cash$A$cash_flow <- split_cash$A$cash_flow * 2
split_cash$B$cash_flow <- split_cash$B$cash_flow * 3
new_cash <- unsplit(split_cash, grouping)
ध्यान दें कि आप cash_flow कॉलम को कैसे एक्सेस करते हैं. पहला $ split_cash लिस्ट के A एलिमेंट तक पहुँचने के लिए है. दूसरा $ A में मौजूद data frame के cash_flow कॉलम तक पहुँचने के लिए है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
R for Finance परिचय
अभ्यास निर्देश
- आपके लिए
split_cashdata frame उपलब्ध है. साथ ही,cashको split करने में उपयोग हुआgroupingभी उपलब्ध है. split_cashप्रिंट करें ताकि सूची (list) को देख सकें.split_cashमें companyBकाcash_flowकॉलम प्रिंट करें.- दुर्भाग्यवश, आपने सीखा है कि company A बंद हो गई. company A के
cash_flowको0पर सेट करें. groupingका उपयोग करकेsplit_cashdata frame कोunsplit()करें. इसेcash_no_Aमें असाइन करें.- अंत में, बदला हुआ data frame देखने के लिए
cash_no_Aप्रिंट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Print split_cash
# Print the cash_flow column of B in split_cash
split_cash$___$___
# Set the cash_flow column of company A in split_cash to 0
split_cash$___$___ <- ___
# Use the grouping to unsplit split_cash
cash_no_A <- unsplit(___, ___)
# Print cash_no_A