複数の期間のデータのサブセットに取り組んでおり、トレーニング セットで列とレベルの削減を行い、同じアクションを同じ構造の他のデータセットに適用したいと考えています。
Hmisc パッケージの dataframeReduce を使用してきましたが、関数を別のデータセットに適用すると、動作が少し異なります。
trainPredictors<-dataframeReduce(trainPredictors,
fracmiss=0.2, maxlevels=20, minprev=0.075)
testPredictors<-dataframeReduce(testPredictors,
fracmiss=0.2, maxlevels=20, minprev=0.075)
testPredictors<-testPredictors[,names(trainPredictors)]
backPredictors には、trainPredictors が保持する列が削除されているため、最後の行はエラーになります。他のすべてのセットには、trainPredictors に適用された変換が適用されている必要があります。
dataframeReduce または別の関数/コード ブロックを使用して、同じクリーンアップ アクションを複数のデータセットに適用する方法を知っている人はいますか?
例
http://trinkerrstuff.wordpress.com/2012/05/02/function-to-generate-a-random-data-set/の関数 NAins の使用
NAins <- NAinsert <- function(df, prop = .1){
n <- nrow(df)
m <- ncol(df)
num.to.na <- ceiling(prop*n*m)
id <- sample(0:(m*n-1), num.to.na, replace = FALSE)
rows <- id %/% m + 1
cols <- id %% m + 1
sapply(seq(num.to.na), function(x){
df[rows[x], cols[x]] <<- NA
}
)
return(df)
}
library("Hmisc")
trainPredictors<-NAins(mtcars, .1)
testPredictors<-NAins(mtcars, .3)
trainPredictors<-dataframeReduce(trainPredictors,
fracmiss=0.2, maxlevels=20, minprev=0.075)
testPredictors<-dataframeReduce(testPredictors,
fracmiss=0.2, maxlevels=20, minprev=0.075)
testPredictors<-testPredictors[,names(trainPredictors)]