gpt4 book ai didi

r - 获取因子频率的直方图(摘要)

转载 作者:行者123 更新时间:2023-12-03 13:56:45 28 4
gpt4 key购买 nike

我有一个具有许多不同值的因素。如果执行 summary(factor)输出是不同值及其频率的列表。像这样:

A B C D
3 3 1 5

我想制作频率值的直方图,即 X 轴包含发生的不同频率,Y 轴包含具有此特定频率的因素的数量。完成这样的事情的最佳方法是什么?

编辑:感谢下面的答案,我发现我可以做的是从表格中获取频率因子,在表格中获取它,然后将其绘制成图表,看起来像(如果 f 是因素):
plot(factor(table(f)))

最佳答案

根据澄清的 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)))

以下是三个,从第一列,从上到下:
  • "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

    关于r - 获取因子频率的直方图(摘要),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5804226/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com