結果としてa[1,]=1
を返すあなたの内部関数は、したがって、あなたは全体のxts
が保存されていませんでした。このような
用途:
b <- lapply(a, function(a) { a[1,] = 1; a })
もう一つの方法は、[<-
(匿名割り当て)を使用することです:
b <- lapply(a, `[<-`, 1, TRUE, 1)
library(microbenchmark)
library(xts)
data(sample_matrix)
sample.xts <- as.xts(sample_matrix, descr='my new xts object')
a <- rep(list(sample.xts), 2000)
microbenchmark(assign = lapply(a, function(a) { a[1,] = 1; a }),
anon_assign = lapply(a, `[<-`, 1, TRUE, 3))
Unit: milliseconds
expr min lq mean median uq max neval
assign 33.50660 39.90533 58.75338 43.74316 88.39256 128.15991 100
anon_assign 29.95665 32.37879 44.80245 34.11000 38.87301 97.35795 100
。したがって、匿名のアサインバージョンはかなりありますもっと早く。
優れていました。ありがとうございました! –
@NicolásVargas答えが役に立つ場合は、回答としてマークしてください。 – m0nhawk