通过ID计算每一行的新中位数

Torakxkz

我知道这可能很简单,但我无法解决。

我有以下df:

输入数据

df<-data.frame(id=c(1,2,3,3,3,4, 4, 4, 4, 4, 4), value = c(956, 986, 995, 995, 986, 700, 600, 995, 956, 1000, 986))

所需结果

df<-data.frame(id=c("1","2","3","3","3","4", "4", "4", "4", "4", "4"), value = c("956", "986", "995", "995", "986", "700", "600", "995", "956", "1000", "986"), median = c("956", "986","995","995", "995", "700","650","700","828", "956", "971"))

这是为了计算每行的中间值(考虑到不同的ID)。每行将添加一个新值,然后应计算一个新的中位数

输出数据

library(dplyr)
w = df %>%
group_by(id) %>%
mutate(median = median(value, na.rm =TRUE)) %>%
select (median)
df$median <- w[,2]


df<-data.frame(id=c("1","2","3","3","3","4", "4", "4", "4", "4", "4"), value = c("956", "986", "995", "995", "986", "700", "600", "995", "956", "1000", "986"), median = c("956", "986","995","995", "995", "971","971","971","971", "971", "971"))
莫里斯·埃弗斯(Maurits Evers)

您可以zoo::rollapplyr用来计算滚动中位数:

library(tidyverse);
library(zoo);
df %>%
    group_by(id) %>%
    mutate(
        median = rollapplyr(value, seq_along(value), median))
## A tibble: 11 x 3
## Groups:   id [4]
#      id value median
#   <dbl> <dbl>  <dbl>
# 1    1.  956.   956.
# 2    2.  986.   986.
# 3    3.  995.   995.
# 4    3.  995.   995.
# 5    3.  986.   995.
# 6    4.  700.   700.
# 7    4.  600.   650.
# 8    4.  995.   700.
# 9    4.  956.   828.
#10    4. 1000.   956.
#11    4.  986.   971.

样本数据

df <- data.frame(
    id = c(1,2,3,3,3,4, 4, 4, 4, 4, 4), 
    value = c(956, 986, 995, 995, 986, 700, 600, 995, 956, 1000, 986))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

计算过去X个月中R的每一行和ID的中位数

计算数据框中一行的中位数并保存到新变量

如何找到某一行的每一列的中位数

R:在数据框中添加一行,每列的中位数

R计算某些行的组中的中位数和最后一行

对应行中基于数字的一行的中位数

每 12 个值计算中位数

如何通过遍历Python数据框中的每一行将计算的值存储在新列中?

加快计算每3元组列的行中位数

计算每一行的字符

计算每一行的频率

在每一行暂停计算

计算每一行的每月总数?

确定列中每一行的长度(或位数)

计算每个ID熊猫在每一行的日期范围内有多少行日期

计算每一行的链接数,并将计数添加为新列

计算新测试数据中每一行的线性判别分类函数得分

Pandas 通过计算多列将函数应用于每一行

如何计算多个方阵的中位数返回结果为一个新的方阵

扩展两个列表并在一行中取中位数

用一行中其他观测值的中位数输入 = 1 的值。(右)

通过计算 R 中的中位数来计算误差

如何使用 laravel 计算表关系的每一行 ID?

计算中位数-JavaScript

计算SSRS的中位数

自动化帮助,Excel或SPSS,需要为每五分之一的值计算中位数

Python:迭代 CSV 的每一行,计算每一行中的令牌,使用原始 CSV 的每一行的令牌数创建一个新的 CSV

为表 2 中的每一行计算表 1 中的每一行

R:计算新列(平均值/中位数)