web-dev-qa-db-ja.com

因子頻度のヒストグラムプロットを取得します(概要)

私は多くの異なる値を持つ要因を持っています。 summary(factor)を実行すると、さまざまな値とその頻度のリストが出力されます。そのようです:

A B C D
3 3 1 5

頻度値のヒストグラムを作成します。つまり、X軸には発生するさまざまな頻度が含まれ、Y軸にはこの特定の頻度を持つ因子の数が含まれます。そのようなことを達成するための最良の方法は何ですか?

編集:以下の答えのおかげで、私はできることは周波数係数をテーブルから取得し、それをテーブルに取得してからグラフ化することであるとわかりました(これはfが要因です):

plot(factor(table(f)))
17
wds

明確化されたQに照らして更新

_set.seed(1)
dat2 <- data.frame(fac = factor(sample(LETTERS, 100, replace = TRUE)))
hist(table(dat2), xlab = "Frequency of Level Occurrence", main = "")
_

与える:

histogram of frequency of occurrence in factor

ここでは、hist()の結果にtable(dat)を直接適用するだけです。 table(dat)は因子のレベルごとの度数を提供し、hist()はこれらのデータのヒストグラムを生成します。


オリジナル

いくつかの可能性があります。あなたのデータ:

_dat <- data.frame(fac = rep(LETTERS[1:4], times = c(3,3,1,5)))
_

ここでは、列1から上に向かって3つです。

  • クラス_"table"_のデフォルトのプロットメソッドは、データとヒストグラムのようなバーをプロットします
  • バープロット-これはおそらく、ヒストグラムで意味したものです。ここでインクと情報の比率が低いことに注意してください
  • ドットプロットまたはドットチャート。他のプロットと同じ情報を表示しますが、単位情報あたりのインクの使用量ははるかに少なくなります。優先。

それらを生成するコード:

_layout(matrix(1:4, ncol = 2))
plot(table(dat), main = "plot method for class \"table\"")
barplot(table(dat), main = "barplot")
tab <- as.numeric(table(dat))
names(tab) <- names(table(dat))
dotchart(tab, main = "dotchart or dotplot")
## or just this
## dotchart(table(dat))
## and ignore the warning
layout(1)
_

これは生成します:

one dimensional plots

変数factor(ちなみに悪い名前の選択)にデータがある場合は、table(factor)またはtable(dat)ではなくtable(dat$fac)を使用できます。私のコード例では。

完全を期すために、パッケージlatticeは、必要な方向を取得できるため、ドットプロットの作成に関してより柔軟です。

_require(lattice)
with(dat, dotplot(fac, horizontal = FALSE))
_

与える:

Lattice dotplot version

そして_ggplot2_バージョン:

_require(ggplot2)
p <- ggplot(data.frame(Freq = tab, fac = names(tab)), aes(fac, Freq)) + 
    geom_point()
p
_

与える:

ggplot2 version