gpt4 book ai didi

r - 如何从R中的汇总数据创建直方图?

转载 作者:行者123 更新时间:2023-12-04 03:45:37 26 4
gpt4 key购买 nike

我有一个数据框,其格式如下:

Month       Frequency
2007-08 2
2010-11 5
2011-01 43
2011-02 52
2011-03 31
2011-04 64
2011-05 73

我想使用X箱(X可能在15左右,但实际数据有200个月以上),并使用频率列中的数据作为直方图每个箱的频率,以此数据创建直方图。我该怎么做?

到目前为止,我已经尝试了两种方法,分别是hist()和barplot()命令。 hist()的问题在于,它似乎没有给我任何方法来指定我要在直方图的频率计算中使用频率列。 barplot()的问题在于,我在选择X箱时没有任何灵活性,如果省略了几个月,则生成的图实际上不是真正的直方图,因为x轴不连续。

我现在唯一的想法是使用barplot()方法,为频率缺失的月份填写0,并使用space = 0删除条形之间的间距。问题在于选择任意数量的垃圾箱并不是特别容易。

最佳答案

为了获得这种灵活性,您可能必须复制数据。这是使用rep的一种方法:

n <- 10
dat <- data.frame(
x = sort(sample(1:50, n)),
f = sample(1:100, n))
dat

expdat <- dat[rep(1:n, times=dat$f), "x", drop=FALSE]

现在,您已将数据复制到data.frame expdat中,从而可以使用不同数量的bin来调用 hist:
par(mfcol=c(1, 2))
hist(expdat$x, breaks=50, col="blue", main="50 bins")
hist(expdat$x, breaks=5, col="blue", main="5 bins")
par(mfcol=c(1, 1))

关于r - 如何从R中的汇总数据创建直方图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9133057/

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