给定R中每个值的计数,如何轻松获得平均值、中位数、四分位数等?
假设我有一个数据框,其中一列表示值,另一列表示观察到该值的次数:给定R中每个值的计数,如何轻松获得平均值、中位数、四分位数等?,r,statistics,R,Statistics,假设我有一个数据框,其中一列表示值,另一列表示观察到该值的次数: x <- data.frame(value=c(1,2,3), count=c(4,2,1)) x # value count # 1 1 4 # 2 2 2 # 3 3 1 x您是否试用过这些软件包: Hmisc——它有几个加权统计信息,包括加权分位数 laeken——它有加权分位数 或者尝试对其进行反向转换,并以常规方式运行分析: dtf <- data.fra
x <- data.frame(value=c(1,2,3), count=c(4,2,1))
x
# value count
# 1 1 4
# 2 2 2
# 3 3 1
x您是否试用过这些软件包:
Hmisc
——它有几个加权统计信息,包括加权分位数
laeken
——它有加权分位数
或者尝试对其进行反向转换,并以常规方式运行分析:
dtf <- data.frame(value = 1:3, count = c(4, 2, 1))
x <- with(dtf, rep(value, count))
summary(x)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 1.000 1.000 1.571 2.000 3.000
fivenum(x)
[1] 1 1 1 2 3
dtf为了完整起见,我要注意Bioconductor中的S4Vectors包以“Rle”类的形式提供了一个答案,它允许您构建一个支持所有常规操作的游程编码向量:
library(S4Vectors)
x <- data.frame(value=c(1,2,3), count=c(4,2,1))
y <- Rle(x$value, x$count)
mean(y)
median(y)
quantile(y)
库(S4Vectors)
x来完成测试
通过
下面是完成给定加权中值的代码
值的列
另一列表示观察到该值的次数。
请注意,它使用Hmisc
包中的wtd.quantile
函数
require(Hmisc)
x <- data.frame(value=c(1,2,3), count=c(4,2,1))
## value count
## 1 1 4
## 2 2 2
## 3 3 1
wtd.quantile(x$value, x$count, probs = 0.5)
## 50%
## 1
require(Hmisc)
我在问题中说,总数超过30亿,这太大了,做不到。Hmisc似乎拥有我需要的所有功能。非常感谢。