0

1 つの種 (パン) のバイオリン プロットを使用している場合、コードは次のようになります。

my.vioplot(getFemales(toPlotAggregated,"Pan"),getMales(toPlotAggregated,"Pan"),col=c("red","blue"),names=c("females","males"))

女性を赤、男性を青で単一のプロットを生成します。ただし、この変数に含まれるすべての種を反復処理したいと思います。

levels(factor(toPlotAggregated$species))

vioplot は任意の数のデータセットを受け入れるので、種ごとにメスとオスの両方が必要なので、2*(種の数) のデータセットを生成して vioplot に渡す必要があります。したがって、2 つの種の場合は次のようになります。

my.vioplot(SPECIES1_females,SPECIES1_males,SPECIES2_females,SPECIES2_males,...)

「by」と「apply」でこれを試みましたが、これまでのところ成功していません。

編集:

私のデータの例:

dput(tail(toPlotAggregated))
structure(list(name = c("Taweh", "Bwambale", "Vincent", "Bosco", 
"Clint", "Buschi"), species = c("Pan", "Pan", "Pan", "Pan", "Pan", 
"Pongo"), fullSpecies = c("Pan_troglodytes_ellioti", "Pan_troglodytes_schweinfurthii", 
"Pan_troglodytes_schweinfurthii", "Pan_troglodytes_verus", "Pan_troglodytes_verus", 
"Pongo_abelii"), sex = c("M", "M", "M", "M", "M", "M"), counts = c(52.989924558446, 
85.2531017739286, 118.811705035969, 65.8304927403788, 48.0129119517474, 
63.7682831797004)), .Names = c("name", "species", "fullSpecies", 
"sex", "counts"), row.names = 54:59, class = "data.frame")
4

0 に答える 0