मैं रोलिंग विंडो का उपयोग कर कॉन्वर्सिस मैट्रिस (और माध्य वैक्टर) उत्पन्न करना चाहता हूं। लेकिन मेरे सभी प्रयासों में rollapply
cov
से कॉन्वर्सिस मैट्रिस को ढेर करता है और प्री-आवंटित स्थान से बाहर चला जाता है (उदाहरण के लिए, यदि मेरे मूल डेटा में 40 अवलोकन हैं, तो rollapply
40 से अधिक पंक्तियां नहीं लौटा सकता है)।रोलरली मैट्रिस की एक सूची वापस कर सकते हैं?
क्या कोई तरीका है कि मैं matrices की सूची लौटने के लिए rollapply
प्राप्त कर सकता हूं? या data.frame
को वापस करने के लिए जो मूल data.frame
से बड़ा है, जिसे मैं मैन्युअल रूप से सूची में विभाजित कर सकता हूं? मेरा अंतिम लक्ष्य पैनल लेना है, पैनल को अलग-अलग data.frame
एस की सूची में विभाजित करें, प्रत्येक डेटा फ्रेम के लिए रोलिंग कॉन्वर्सिस और साधनों की गणना करें, फिर कॉन्वर्सिस की इन सूचियों का उपयोग करें और इसका अर्थ है कि व्यक्तियों के समूह की तुलना में डाउनस्ट्रीम।
यहां कुछ कोड है। मेरी समस्या यह है कि my.fun
सभी कॉन्वर्सिस मैट्रिक्स कैलुक्लेशन से डेटा वापस नहीं करेगा। क्या मेरा खुद का rollapply
कोड करने का सबसे अच्छा विकल्प है? या मेरा खुद का cov
जो एक वेक्टर लौटाता है जिसे मैं वापस मैट्रिक्स में परिवर्तित करता हूं? धन्यवाद!
library("zoo")
data.df <- data.frame(sic = rep(1:10, each = 40),
year = rep(1:40, len = 10*40),
one = rnorm(10*40),
two = 2*rnorm(10*40),
three = 3*rnorm(10*40))
data.list <- split(data.df, data.df$sic)
data.list <- lapply(data.list, zoo)
my.fun <- function(x) {
x <- x[, c("one", "two", "three")]
rollapply(x,
width = 10,
FUN = cov,
by.column = F,
align = "right")
}
cov.list <- lapply(data.list, FUN = my.fun)
क्या आप अपना लक्ष्य और स्पष्ट करने की कोशिश कर सकते हैं? वास्तव में क्या बीच में है? यह कोड में प्रकट नहीं होता है और आपने कितने समूहों की कल्पना की है कि डेटा.लिस्ट में है? यह एक चिड़ियाघर श्रृंखला बनाता है: 'my.fun (data.list [[1]]) '। क्या आप एसआईसी == 1 समूह से क्या उम्मीद करते हैं? –
@DWin मैं 10 साल की चलती खिड़की के आधार पर प्रत्येक वर्ष प्रत्येक एसआईसी के लिए एक कॉन्वर्स मैट्रिक्स पसंद करूंगा। यहां 'चिड़ियाघर' वस्तु रखने के बारे में कुछ भी पवित्र नहीं है, मैं स्केलर उत्पन्न करने के लिए 'रोलप्ली' का उपयोग करने के बारे में पहले ही परिचित था। –