使用R获得每1000行的中位数[重复]

cld4siwp  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(99)

此问题在此处已有答案

How to group by every 7 rows, and aggregate those 7 values by median?(1个答案)
昨天关门了。
我有一个非常大的数据集(数千行),其开头如下:
| 职位|计数|
| - ------|- ------|
| 无|无|
| 1个|1个|
| 第二章|1个|
| 三个|第二章|
| 四个|第二章|
| 五个|第二章|
我想把1000行中的行“bin”(不确定这个词是否正确),并得到这1000行中每一行的计数的中值。在某种意义上,位置列的值并不重要,因为我只想每1000行。
我计划最终在直方图中绘制计数的覆盖范围,以查看趋势。

sauutmhj

sauutmhj1#

下面是一种data.table方法
基于您的示例数据,我计算了3行块的平均值。2假设Position是唯一的,并且每行递增1,则在您的生产代码中用数字1000替换3。3否则,您必须首先创建一个唯一的递增rowid。

library(data.table)
DT <- fread("Position   Counts
0   0
1   1
2   1
3   2
4   2
5   2")

# create group id's (3 rows per group, replace with 1000 in production code)
DT[, .(median= median(Counts)), by = .(chunk = Position %/% 3)]

#    chunk median
# 1:     0      1
# 2:     1      2

相关问题