gpt4 book ai didi

r - 使用R计算中位数而不复制元素

转载 作者:行者123 更新时间:2023-12-02 21:17:13 27 4
gpt4 key购买 nike

我有一个包含大量数字的频率分布。我想计算中位数和四分位数,但 R 提示。以下是对少数人有效的方法:

> TABLE <- data.frame(DATA = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19), F = c(48,0,192,1152,5664,23040,77952,214272,423984,558720,267840,0,0,0,0,0,0,0,0))
> summary(rep(TABLE$DAT,TABLE$F))
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 9.000 10.000 9.397 10.000 11.000

这是我从大量数据中得到的结果:

> TABLE <- data.frame(DATA = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19), F = c(240,0,1200,9600,69600,470400,2992800,17859840,98312880,489292800,2164619760,8325820800,26865302400,68711068800,128967422400,153763315200,96770419200,26824089600,2395008000))
> summary(rep(TABLE$DAT,TABLE$F))
Error in rep(TABLE$DAT, TABLE$F) : invalid 'times' argument
In addition: Warning message:
In summary(rep(TABLE$DAT, TABLE$F)) :
NAs introduced by coercion to integer range

这个错误并不让我感到惊讶,因为使用“rep”我想创建一个巨大的向量。但我不知道如何避免这种情况并计算中位数和四分位数。

最佳答案

您可以获得“加权分位数”,而不是尝试复制该怪物以使用summary()。 This post has a formula 。但与大多数事情一样,一旦您知道正确的术语,您就可以找到一个包这已经完成了工作!

#install.packages("Hmisc")

TABLE <- data.frame(DATA = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19), F = c(240,0,1200,9600,69600,470400,2992800,17859840,98312880,489292800,2164619760,8325820800,26865302400,68711068800,128967422400,153763315200,96770419200,26824089600,2395008000))


Hmisc::wtd.quantile(TABLE$DATA, probs = c(0.25, 0.5, 0.75), weight = TABLE$F)
#> 25% 50% 75%
#> 15 16 16

reprex package于2018年4月6日创建(v0.2.0)。

关于r - 使用R计算中位数而不复制元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49560705/

27 4 0
文章推荐: asp.net - 有没有办法在IIS重新启动后出现 "auto-deploy"ASP.NET应用程序?
文章推荐: ASP.net 4.0 Webforms 路由回发问题
文章推荐: excel - selenium v​​ba从Web表中提取数据的最后一段代码复制文本不起作用
文章推荐: c# - 按属性和这些属性的有序数组对 IEnumerable 进行排序