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