Работа в числовом режиме значительно сокращает время обработки:
> system.time(by(myxts[,c(1,2,3,4,5)], myxts$Symbol, summary))
user system elapsed
57.768 0.688 58.511
> system.time(by(myxts[,c(1,2,3,4,5,6,7,8)], myxts$Symbol, summary))
user system elapsed
62.284 0.620 62.971
> system.time(by(myxts[,c(1,2,3,4,5,6,7,8, 9, 10, 11, 12)], myxts$Symbol, summary))
user system elapsed
76.529 0.632 77.232
> myxts.numeric = myxts
> mode(myxts.numeric) = "numeric"
Warning message:
In as.double.xts(c("AA", "AAPL", "ABC", "ALL", "AMAT", "AMZN", "BAC", :
NAs introduced by coercion
> system.time(by(myxts.numeric[,c(1,2,3,4,5,6,7,8, 9, 10, 11, 12)], myxts$Symbol, summary))
user system elapsed
4.948 0.688 5.642