我正在寻找一种方法来绘制带有许多小提琴(列)的小提琴图。问题在于我的列长度都不同。例如,它类似于这样:
"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()
但是没有任何效果。
有没有人对如何做到这一点或是否可以做到有任何建议?
谢谢你的帮助。