RI では、生データではなく、カウント データを超える箱ひげ図を作成したいと考えています。したがって、私のテーブル スキーマは次のように
なります。カウント
1 | 2
2 | 1
...
それ以外の
値
1
1
2
...
2番目のケースでは、単純にboxplot(x)を実行できます
すでに要約されたデータを使用してやりたいことを実行する方法があると確信していますが、そうでない場合は、rep
ベクトルを使用するという事実を悪用することができます。
> dat <- data.frame(Value = 1:5, Count = sample.int(5))
> dat
Value Count
1 1 1
2 2 3
3 3 4
4 4 2
5 5 5
> rep(dat$Value, dat$Count)
[1] 1 2 2 2 3 3 3 3 4 4 5 5 5 5 5
箱ひげ図をその周りにラップするだけで、必要なものが得られるはずです。それを行うためのより効率的/より良い方法があると確信していますが、これはあなたのために働くはずです。
最近、「rep」関数を使用してカウントの各列に「apply」関数を使用して、同様の問題を解決しました。
> datablock <- apply(countblock[-1], 2, function(x){rep(countblock$value, x)})
> boxplot(datablock)
...上記は、値が最初の列にあり、後続の列にカウントデータが含まれていることを前提としています。
おもちゃデータ:
(Value
とCount
に加えて、カテゴリ変数 を追加しますGroup
)
set.seed(12345)
df <- data.frame(Value = sample(1:100, 100, replace = T),
Count = sample(1:10, 100, replace = T),
Group = sample(c("A", "B", "C"), 100, replace = T),
stringsAsFactors = F)
purrr::pmap
とを使用しpurrr::reduce
てデータ フレームを操作します。
library(purrr)
data <- pmap(df, function(Value, Count, Group){
data.frame(x = rep(Value, Count),
y = rep(Group, Count))
}) %>% reduce(rbind)
boxplot(x ~ y, data = data)