У меня есть набор данных 20000 * 5. В настоящее время он обрабатывается итеративно, и набор данных постоянно обновляется на каждой итерации.Каков самый быстрый способ обновления набора данных в R?
Ячейки в data.frame обновляются на каждой итерации и ищут некоторую помощь в быстром выполнении этих задач. Поскольку это небольшой data.frame, я не уверен, что data.table будет работать нормально.
Вот ориентиры для data.frame subassignment:
sessionInfo()
R version 3.2.4 Revised (2016-03-16 r70336)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows Server >= 2012 x64 (build 9200)
set.seed(1234)
test <- data.frame(A = rep(LETTERS , 800), B = rep(1:26, 800), C=runif(20800), D=runif(20800) , E =rnorm(20800))
microbenchmark::microbenchmark(test[765,"C"] <- test[765,"C"] + 25)
Unit: microseconds
expr min lq mean median uq max neval
test[765, "C"] <- test[765, "C"] + 25 112.306 130.8485 979.4584 186.3025 197.7565 44556.15 100}
Есть ли способ для достижения указанной выше функции быстрее, чем то, что я писал?
Самый быстрый способ - это функция 'set' в package data.table. Очевидно, еще быстрее избежать этого. – Roland
Добро пожаловать в StackOverflow! Пожалуйста, прочитайте информацию о [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и как дать [воспроизводимый пример] (http://stackoverflow.com/questions/ 5963269). Это облегчит вам помощь другим людям. – Jaap
microbenchmark :: microbenchmark (тест [765, «C»] <- test [[765, «C»]] + 25) это быстрее, чем в моем посте, но есть ли альтернативы? – sak88