Ref bu yazı Similar questiondaha hesaplamak aylık döner
Ben sembollerin bir seri indiriyorum yapılan ve yakın düzeltilmiş aylık getiri hesaplamak gerekir ve yapamıyorum çalışıyor gibi görünüyor. Daha önceki yazıda, konuyla ilgili olarak ROC @Joshua Ulrich'i kullanmam gerekti, ancak bu günlük iadeler için geçerli. Diğer örnekler, benim için iyi olmayan 'yakın' kullanır.
Benim başlangıç noktası:library('quantmod')
tickers <- c("XOM","MSFT","JNJ","GE","CVX","WFC","PG","JPM","VZ","PFE",
"T","IBM","MRK","BAC","DIS","ORCL","PM","INTC","SLB")
#The following gives me what I need, but using Close instead of Adjusted
stocks_ret <- lapply(tickers, function(sym) monthlyReturn(type = 'log',(na.omit(getSymbols(sym, from='2013-01-01, auto.assign=FALSE)))))
Joshua Ulrich çözümü (büyük çalışır, ancak ben aylık getiriler çevirmek için nasıl hiçbir fikrim var): Sonra
# create environment to load data into
Data <- new.env()
getSymbols(c("^GSPC",Symbols), from="2007-01-01", env=Data)
# calculate returns, merge, and create data.frame (eapply loops over all
# objects in an environment, applies a function, and returns a list)
Returns <- eapply(Data, function(s) ROC(Ad(s), type="discrete"))
ReturnsDF <- as.data.frame(do.call(merge, Returns))
#adjust column names are re-order columns
colnames(ReturnsDF) <- gsub(".Adjusted","",colnames(ReturnsDF))
ReturnsDF <- ReturnsDF[,c("GSPC",Symbols)]
Denedim:
Returns <- eapply(Data, function(s) ROC(Ad(s)[endpoints(tickers, on = 'months'),], type="discrete"))
İkincisi bana bir hata mesajı veriyor: "try.xts (x, error =" hatası) xts-coercible veya timeB olmalıdır Esaslı ")" Ancak
, ben AYLIK bazda hesaplayabilir yerine og günlük .. 'n = 21' ..
herkes sorunu çözmez nasıl bir çözüm bulamıyorum ??
Teşekkür çözümü için tek yoldur. Başka bir paket kullanmadan bunu yapmanın herhangi bir yolu? – cJc
Evet. Stok_Veri <- lapply (işaretleyiciler, işlev (x) getSymbols (x, auto.assign = YANLIŞ)) Stock_Data_Final <- lapply (Stok_Veri, işlev (x) monthReturn (Ad (x))) –
Çok fazla Tnx, harika çalışıyor! – cJc