Ich würde erwarten, cbind.xts
und do.call(cbind.xts)
mit ähnlich verstrichener Zeit durchzuführen. Das galt für R2.11, R2.14.Gibt es eine Arbeit für die langsame Ausführung von do.call (cbind.xts, ...) in R 2.15.2?
Für R2.15.2 und xts 0,8-8 führt die do.call(cbind.xts,...)
Variante drastisch langsamer, was meine früheren Codes effektiv bricht.
Wie Josh Ulrich in einem Kommentar unten bemerkt, sind die xts Paketbetreuer dieses Problems bekannt. Gibt es in der Zwischenzeit eine bequeme Arbeit?
Reproduzierbare Beispiel:
library(xts)
secs <- function (rows, from = as.character(Sys.time()), cols = 1, by = 1)
{
deltas <- seq(from = 0, by = by, length.out = rows)
nacol <- matrix(data = NA, ncol = cols, nrow = rows)
xts(x = nacol, order.by = strptime(from, format = "%Y-%m-%d %X") +
deltas)
}
n <- 20
d1 <- secs(rows=n*100,cols=n)
d2 <- secs(rows=n*100,cols=n)
system.time(cbind.xts(d1,d2))
gegen
system.time(do.call(cbind.xts, list(d1,d2)))
Stackoverflow ist nicht der Ort, um Verhalten zu bestätigen. Sie können Ihre Frage bearbeiten, um nach einem Workaround zu fragen. Wir sind uns dessen bewusst und es hat mit "do.call" zu tun (und vielleicht mit der ungewöhnlichen Methode "cbind" und "rbind"); es ist nicht spezifisch für xts. –
@JoshuaUlrich Nun, wer ist sich dessen bewusst? R-Kern-Team? Oder XTS-Team? Was sind die Details des Problems? Bitte geben Sie bessere Informationen an. –
@PetrMatousu: Vielleicht sollten Sie erfahren, wer Ihre Paketbetreuer sind. –