パッケージで多重代入を使用した後、を使用して、densityplot()
からのようなものを作成しようとしています。再現可能な例を次に示します。lattice package
ggplot2
mice
require(mice)
dt <- nhanes
impute <- mice(dt, seed = 23109)
x11()
densityplot(impute)
生成するもの:
出力をもう少し制御したい(そしてこれをggplotの学習演習としても使用している)。それで、bmi
変数について、私はこれを試しました:
bar <- NULL
for (i in 1:impute$m) {
foo <- complete(impute,i)
foo$imp <- rep(i,nrow(foo))
foo$col <- rep("#000000",nrow(foo))
bar <- rbind(bar,foo)
}
imp <-rep(0,nrow(impute$data))
col <- rep("#D55E00", nrow(impute$data))
bar <- rbind(bar,cbind(impute$data,imp,col))
bar$imp <- as.factor(bar$imp)
x11()
ggplot(bar, aes(x=bmi, group=imp, colour=col)) + geom_density()
+ scale_fill_manual(labels=c("Observed", "Imputed"))
これを生成します:
したがって、いくつかの問題があります。
- 色が間違っています。色を制御する私の試みは完全に間違っている/無視されているようです
- 不要な水平線と垂直線があります
- 凡例にImputedとObservedを表示したいのですが、コードでエラーが発生します
invalid argument to unary operator
さらに、1行で達成されることを行うにはかなりの作業が必要なようですdensityplot(impute)
-それで、私はこれを完全に間違った方法で行っているのではないかと思いましたか?
編集:@ROLOが指摘したように、4番目の問題を追加する必要があります。
.4。プロットの範囲が正しくないようです。