関数を実行するより高速な方法を見つけようとしています。これは、一定期間内の特定の日ごとの中央値を探しています。forループでSapplyを実行するよりも速い方法はありますか?
for(z in unique(as.factor(df$group))){
all[[z]]<- sapply(period, function(x) median(df[x == df$date & df$group==z, 'y']))
}
サンプルデータ:
date<-as.Date("2011-11-01") +
runif( 1000,
max=as.integer(
as.Date( "2012-12-31") -
as.Date( "2011-11-01")))
period<-as.Date(min(df$date):max(df$date), origin = "1970-01-01")
df <- data.frame(date=date, y = rnorm(1000), group=factor(rep(letters[1:4], each=250)))