多くのバイオリン (列) を持つバイオリン プロットをプロットする方法を探しています。問題は、私の列の長さがすべて異なることです。たとえば、次のようなものです。
"V1" "V2"
"V1" 9 255.5
"V2" 432 286
"V3" 161 322.5
"V4" 320.5 277
"V5" 253.5 153.5
"V6" 301 155.5
"V7" 113 218.5
"V8" 341 394
"V9" 138 93.5
........
"V38166" 62 152
"V38167" NA 20.5
"V38168" NA 12
"V38169" NA 40.5
"V38170" NA 88
"V38171" NA 2.5
"V38172" NA 279.5
"V38173" NA 161.5
"V38174" NA 14.5
ご覧のとおり、エントリが少ないため、最初の列にいくつかの NA があります。さらに列が存在する可能性があることに注意してください。問題は、列のいずれかに NA を含むバイオリン プロットを作成できるかどうかです。
私はこれを試しました:
jpeg("violinplot.jpg", width = 1000, height = 1000);
do.call(vioplot,c(statsDataFrame, list(names=nameList)))
dev.off()
statsDataFrame は、上に投稿した完全なデータ フレームです。ただし、スクリプトを実行すると、次のエラーが発生します。
Error in quantile.default(data, 0.25) :
missing values and NaN's not allowed if 'na.rm' is FALSE
Calls: do.call -> <Anonymous> -> quantile -> quantile.default
Execution halted
これは本質的にNAについて不平を言っています。私は na.rm = FALSE と na.rm = TRUE の両方を試しました:
jpeg("stats/AllDistanceViolinPlot.jpg", width = 1000, height = 1000);
do.call(vioplot,c(columnViolinDistanceDataUnlist,na.rm=FALSE,list(names=tfListRow)))
dev.off()
と
jpeg("stats/AllDistanceViolinPlot.jpg", width = 1000, height = 1000);
do.call(vioplot,c(columnViolinDistanceDataUnlist,na.rm=TRUE,list(names=tfListRow)))
dev.off()
しかし、役に立たない。
これを行う方法またはそれが可能かどうかについて、誰か提案はありますか?
ご協力ありがとうございました。