Я использую scaleBy из пакета doBy R, чтобы стандартизировать переменную по условию для каждого объекта в моем наборе данных. У меня около 5137 участников моего набора данных, каждый из которых имеет около 120 наблюдений. В этом наборе данных scaleBy очень медленный (около 15 минут). Другие функции (например, summaryBy, melt, dcast) работают намного быстрее (не более 20 секунд). Интересно, есть ли более быстрые простые альтернативы для scaleBy.R: Быстрая альтернатива scaleBy
Вот код моделирования, который вы можете запустить, чтобы подражать моему набору данных, с точки зрения количества участников, количества условий внутри каждого участника (это проект повторных измерений) и количества наблюдений за каждым условием для каждого участника :
nSubj <- 5137
valuesPerSubj <- 120
nobs <- nSubj*valuesPerSubj
ttt <- data.frame(cond=rep(c('a','b','c','d'),nobs/4), rt=rnorm(nobs,mean=700,sd=150), subj=rep(seq(1:nSubj),valuesPerSubj))
start <- Sys.time()
zt <- scaleBy(rt ~ subj+cond, data=ttt)
end <- Sys.time()
duration <- end-start
duration
scaleBy в этом коде занимает мой компьютер 11.7 минут (вы можете уменьшить nSubj в приведенном выше для более быстрого тестирования кода). Любые более быстрые решения?