巨大なデータフレーム(約12.000ケース)を再構築しようとしています。古いデータフレームでは、1人が1行で、約250列(たとえば、Person 1、test A1、testA2、testBなど)があり、すべての結果が必要です。テストAの(全体で1〜10 A、1列にその人の24項目(AY)があるため、1人は24列10行になります。項目AYが開始する前に固定データフレーム部分もあります(個人年齢、性別などの情報)をそのままにしておきたい(fixdata)。関数/ループは30ケース(事前に試した)で動作しますが、12.000の場合は、24時間近く計算中です。なぜ何かアイデアはありますか?
restructure <- function(data, firstcol, numcol, numsets){
out <- data.frame(t(rep(0, (firstcol-1)+ numcol)) )
names(out) <- names(daten[0:(firstcol+numcol-1)])
for(i in 1:nrow(daten)){
fixdata <- (daten[i, 1:(firstcol-1)])
for (j in (seq(firstcol, ((firstcol-1)+ numcol* numsets), by = numcol))){
flexdata <- daten[i, j:(j+numcol-1)]
tmp <- cbind(fixdata, flexdata)
names(tmp) <- names(daten[0:(firstcol+numcol-1)])
out <- rbind(out,tmp)
}
}
out <- out[2:nrow(out),]
return(out)
}
前もって感謝します!