आर

2013-01-11 9 views
5

में डेटासेट से गुम पंक्तियां मैंने कल दोपहर का बेहतर हिस्सा बिताया और आज सुबह मेरी समस्या में कुछ अंतर्दृष्टि प्राप्त करने की कोशिश की। यदि आप मुझे किसी भी संसाधन के लिए इंगित कर सकते हैं जो बहुत अच्छा होगा!आर

मेरे पास आर (एक ओरेकल तालिका से आयातित) में डेटाफ्रेम है, नीचे दिए गए डेटा को देखें। मैं इसे लॉस_Data कहते हैं।

Loss_Yr Dev_Lag Claim_Amnt 
1 2007 1 300 
2 2007 2 10 
3 2007 3 250 
4 2007 5 5 
5 2008 1 450 
6 2008 2 80 
7 2008 4 3 
8 2009 1 175 
9 2009 3 20 
10 2010 1 95 
11 2010 2 40 
12 2011 1 130 

हालांकि, मुझे इसे निम्न जैसा दिखने की आवश्यकता है। मुझे यह सुनिश्चित करने की ज़रूरत है कि प्रत्येक संभावित Loss_Yr और Dev_Lag संयोजन के लिए एक पंक्ति है। देखें जोड़ा पंक्तियों

Loss_Yr Dev_Lag Claim_Amnt 
1 2007 1 300 
2 2007 2 10 
3 2007 3 250 
***4 2007 4 0*** 
5 2007 5 5 
6 2008 1 450 
7 2008 2 80 
***8 2008 3 0*** 
9 2008 4 3 
10 2009 1 175 
***11 2009 2 0*** 
12 2009 3 20 
13 2010 1 95 
14 2010 2 40 
15 2011 1 130 

पहले मैं सोच रहा था कि मैं सभी संभव संयोजनों के साथ एक "डमी" तालिका बनाने और उसके बाद अपने मौजूदा साथ मर्ज करना होगा पर; रिकॉर्ड को मेरी आंतरिक तालिका, लॉस_Data से रखते हुए।

हालांकि, मैं एक प्रक्रिया बनाने की कोशिश कर रहा हूं और यह विधि बहुत ही स्पष्ट नहीं होगी।

इससे निपटने के तरीके पर कोई विचार ?!

+1

आपके द्वारा रूपरेखा की विधि के बारे में क्या पर्याप्त लचीला नहीं होगा? – joran

+0

अतीत में मैंने इसे अन्य तरीके से किया है, अनिवार्य रूप से डेटा को पार करने के लिए, लापता मानों को उचित रूप से भरने के लिए, और उसके बाद इसे '' tapply' या 'table'' as.data.frame द्वारा अन-टैबलेट करें। तालिका', या कुछ 'plyr'-ish) –

+0

कारण मैं दो तालिकाओं के साथ विधि का उपयोग नहीं करना चाहता क्योंकि मुझे संभावित संयोजनों के साथ एक नई तालिका बनाना जारी रखना होगा। विस्तृत करने के लिए, न केवल समय बीत जाएगा जिसके लिए combos की तालिका में अपडेट की आवश्यकता होगी, लेकिन मुझे समय की विभिन्न वृद्धिओं से चलने की आवश्यकता हो सकती है। उदाहरण के लिए: साल से, त्रैमासिक, महीने के द्वारा, आदि –

उत्तर

7

आपके द्वारा वर्णित दृष्टिकोण सही विचार है। शायद आप कार्यान्वयन को अधिक जटिल बना रहे हैं?

d <- read.table(text="Loss_Yr Dev_Lag Claim_Amnt 
1 2007 1 300 
2 2007 2 10 
3 2007 3 250 
4 2007 5 5 
5 2008 1 450 
6 2008 2 80 
7 2008 4 3 
8 2009 1 175 
9 2009 3 20 
10 2010 1 95 
11 2010 2 40 
12 2011 1 130", header=TRUE, row.names=1) 

filled <- merge(d, 
       with(d, expand.grid(Loss_Yr=unique(Loss_Yr), Dev_Lag=unique(Dev_Lag))), 
       all=TRUE) 
+1

और परिष्करण स्पर्श के रूप में, डी [is.na (डी)] <- 0 उन एनएएस को शून्य के साथ बदलने के लिए;) –