19

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

A B C D
3 3 1 5

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

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

plot(factor(table(f)))
4

1 に答える 1

27

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

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

与えます:

因子の出現頻度のヒストグラム

ここでは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)

これにより、次が生成されます。

一次元プロット

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

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

require(lattice)
with(dat, dotplot(fac, horizontal = FALSE))

与える:

格子点図バージョン

そしてggplot2バージョン:

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

与える:

ggplot2 バージョン

于 2011-04-27T12:55:28.027 に答える