2013-01-20 22 views
8

मेरे पास डेट-कॉलम वाला डेटा.फ्रेम है। इन तिथियों शून्य समय में कई बार हो सकता है, लेकिन यह भी:डेटा.फ्रेम में अंतराल (दिनांक-) अंतराल कैसे भरें?

 date value 
1 2013-01-01  5 
2 2013-01-01  3 
3 2013-01-03  3 
4 2013-01-04  3 
5 2013-01-04  1 
6 2013-01-06  1 

मैं कैसे तो मैं निम्नलिखित मिल इस data.frame में तारीख-अंतराल को भरने करते हैं?

 date value 
1 2013-01-01  5 
2 2013-01-01  3 
3 2013-01-02  0 
4 2013-01-03  3 
5 2013-01-04  3 
6 2013-01-04  1 
7 2013-01-05  0 
8 2013-01-06  1 

किसी भी मदद का स्वागत है।

TIA, जेरी

उत्तर

14

आप किसी अन्य data.frame अनुक्रम में सभी तिथियों containg के साथ अपने data.frame merge कर सकते हैं। यहां मुझे लगता है कि डेटा आपका मूल डेटा है। फ्रेम।

hh<- data.frame(date=seq(as.Date("2013-01-01"), as.Date("2013-01-6"), by="days")) 
>res <- merge(dat,hh,by.x='date',by.y='date',all.x=T,all.y=T) 
     date value 
1 2013-01-01  5 
2 2013-01-01  3 
3 2013-01-02 NA 
4 2013-01-03  3 
5 2013-01-04  3 
6 2013-01-04  1 
7 2013-01-05 NA 
8 2013-01-06  1 

अब हमारे पास प्रत्येक पंक्ति के लिए एनए है जिसमें एचएच में कोई मिलान पंक्ति नहीं है। Personaly, मुझे लगता है कि यह कहना है कि शोध करे मान अनुपलब्ध हैं एनए के लिए बेहतर है लेकिन तुम 0 करने के लिए उन्हें सेट कर सकते हैं:

res$value[is.na(res$value)] <- 0 

संपादित

व्यापकता आप hh उत्पन्न कर सकते हैं के लिए के रूप में @Arun में दिखाया गया है समाधान:

 hh <- seq(min(dat$date), max(dat$date), by="days") 
+1

@ अरुण धन्यवाद! मैंने सामान्य मामले में seq तिथियां उत्पन्न करने के लिए आपके विचार का उपयोग किया। – agstudy

+0

बहुत बहुत धन्यवाद। मैं भी एक दूसरे डेटा के साथ कोशिश कर रहा था। फ्रेम भी। लेकिन मैंने डिफ़ॉल्ट मानों के लिए हमेशा दिनांक और मान कॉलम के साथ एक डीएफ का उपयोग किया। तो विलय के बाद मुझे हमेशा बहुत सारे कॉलम मिलते हैं। :-( – JerryWho

+0

@ जेरी जो मैं देखता हूं, विलय का उपयोग करने की कुंजी कुंजी कॉलम हैं .. चूंकि आप by.x और by.y अन्य कॉलम को कोई फर्क नहीं पड़ता .. – agstudy

संबंधित मुद्दे