6

RI では、生データではなく、カウント データを超える箱ひげ図を作成したいと考えています。したがって、私のテーブル スキーマは次のように

なります。カウント
1 | 2
2 | 1

...

それ以外の


1
1
2
...

2番目のケースでは、単純にboxplot(x)を実行できます

4

4 に答える 4

0

すでに要約されたデータを使用してやりたいことを実行する方法があると確信していますが、そうでない場合は、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

箱ひげ図をその周りにラップするだけで、必要なものが得られるはずです。それを行うためのより効率的/より良い方法があると確信していますが、これはあなたのために働くはずです。

于 2011-10-28T18:52:16.003 に答える
0

最近、「rep」関数を使用してカウントの各列に「apply」関数を使用して、同様の問題を解決しました。

> datablock <- apply(countblock[-1], 2, function(x){rep(countblock$value, x)})
> boxplot(datablock)

...上記は、値が最初の列にあり、後続の列にカウントデータが含まれていることを前提としています。

于 2013-05-06T01:56:59.617 に答える
0

おもちゃデータ:

(ValueCountに加えて、カテゴリ変数 を追加します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)

ここに画像の説明を入力

于 2018-12-21T10:16:40.047 に答える