この関数「ステータス」が適用される約25L行の大規模なデータセットがあります。そのフラグ手順。fn 内では、演算がベクトル化され、適用関数が使用されます。c1-c4 は私のデータの列です。それでも、fn の実行には約 5 ~ 6 時間かかります。
status(mydata)
status <- function (x) {
x<- subset(x, x$RECORD_TYPE != "INPUT")
x$c1<- as.character(x$c1)
x$c2 <- as.factor(x$c2)
x$c3 <- as.factor(x$c3)
return ( data.frame(cbind(
tapply(x$c2, x$c4,
function (x) ifelse (!(any(x=="BAD")), "G", sum(x== "BAD"))) ,
tapply(x$c2D, x$c4,
function (x) sum (x== "NEG")) )))
}
fnをさらに高速化する方法はありますか。私は 16 コアのサーバーで作業しています。だから、もっとスピードアップできると思います。