2011-02-24 12 views
5

मैं कुछ अस्थायी डेटा प्लॉट करने की कोशिश कर रहा हूं जिसमें उनमें कुछ अंतराल है। आप यहां साजिश देख सकते हैं: http://www.tiikoni.com/tis/view/?id=da222e2
समस्या यह है कि टीएस में समय अंतराल के दौरान लाइन प्लॉट अंतराल पर अंतरित होता है और मैं इसे नहीं चाहता हूं। मैंने एनए ध्वज के साथ अंतराल को अंतःस्थापित करने का प्रयास किया है, लेकिन कई फाइलों से क्रमबद्ध लगभग 10000 डेटापॉइंट्स हैं, जो मैन्युअल रूप से एनए ध्वज को जोड़ना मुश्किल बनाता है। यदि साजिश के व्यवहार को परिभाषित करना संभव नहीं है (0 फ़ंक्शन, क्या कोई अन्य प्लॉट है जिसका उपयोग मैं कर सकता हूं, उदाहरण के लिए चिड़ियाघर, जो मुझे अंतराल के बीच खींची गई रेखाएं नहीं दे पाएगा?अस्थायी टीएस प्लॉटिंग और एनए डेटा को छोड़कर

+2

कुछ नमूना कोड उपयोगी होगा ... –

+0

आप सही जोरिस कर रहे हैं। जिस कारण से मैंने इसमें शामिल नहीं किया था क्योंकि मैं सोच रहा था कि यह एक साजिश समारोह में एक पैरामीटर हो सकता है जिसे मैं याद कर रहा था। – cmdel

उत्तर

3

अंतराल को अंतःस्थापित करना मुश्किल नहीं है एनए के साथ प्रयोग कर विलय, एक बार आप अपने समय श्रृंखला के अनुक्रम पता एक छोटी सी प्रदर्शन:।।

X <- c(1:20,41:100) 
Y <- rnorm(80) 

plot(X,Y,type="l")  

Z <- seq(min(X),max(X),by=1) # I take 1 is the period. 
newData <- merge(data.frame(X,Y),data.frame(X=Z),all=T) 
plot(newData,type="l") 
2

एक अंतर के साथ एक चिड़ियाघर श्रृंखला फिर g जो जेड के समय अंक से अधिक लापता बिंदु शामिल परिभाषित बनाएँ। z और साजिश के साथ विलय करने के लिए शून्य चौड़ाई चिड़ियाघर श्रृंखला।

library(zoo) 
z <- zoo(rnorm(12), c(1:6, 11:16)) # test data 

g <- seq(start(z), end(z), 1) 
zz <- merge(z, zoo(, g)) 
plot(zz) 
1

उन सभी के लिए धन्यवाद जिन्होंने मेरी क्वेरी में योगदान दिया।

मैंने इस प्रश्न को आर-सहायता मेल सूची में भी पोस्ट किया और यह वहां से है कि मुझे एक प्रक्रिया के साथ उत्तर दिया गया था जो एनए ध्वज के साथ लापता डेटा बिंदुओं को भरने में काम करता था। समस्या यह थी कि टाइम-टिकटें अनियमित रूप से दूरी पर थीं, लेकिन अभी भी कुछ सीमाओं के भीतर थीं। आप कैसे एक अंतराल परिभाषित करते हैं:

किसी भी सॉफ्टवेयर एक ही समस्या आप था हो रहा है:

भावी पीढ़ी प्रयोजनों के लिए इस डंकन मर्डोक द्वारा सुझाव है? यदि परिभाषा "टाइम एक्स से अधिक अंतर" जैसी कुछ सरल है, तो यह काफी आसान होगी: क्रमबद्ध समय में सभी समय अंतर खोजने के लिए diff() का उपयोग करें, और कहीं भी एक्स से अधिक, एक नया डेटा डालें एनए वैल्यू के साथ इंगित करें। उदाहरण के लिए:

t <- c(1,2,3,7,8,9,11,12,13) 
x <- rnorm(length(T)) 
d <- diff(t) 
gap <- which(d > 1.5) 
if (length(gap)) { 
    newT <- (t[gap] + t[gap+1])/2 
    t <- c(t, newT) 
    x <- c(x, rep(NA, length(newT))) 
    o <- order(t) 
    t <- t[o] 
    x <- x[o] 
} 
plot(t, x, type='l') 
संबंधित मुद्दे