如何使用dplyr通过id过滤数据帧组中列的前10个百分位数

象棋

我有以下数据框:

id   total_transfered_amount day
1       1000                 2
1       2000                 3
1       3000                 4
1       1000                 1
1       10000                4
2       5000                 3
2       6000                 4
2       40000                2
2       4000                 3
2       4000                 3
3       1000                 1
3       2000                 2
3       3000                 3
3       30000                3
3       3000                 3

需要分别使用dplyr软件包过滤掉每个id的'total_transfered_amount'列中位于90%以上的行,例如,我需要过滤以下行:

2       40000                2
3       30000                3
阿克伦

我们可以用 data.table

 library(data.table)
 setDT(df1)[,.SD[quantile(total_transfered_amount, 0.9) < 
                total_transfered_amount] , by = id]
 #    id total_transfered_amount day
 #1:  1                   10000   4
 #2:  2                   40000   2
 #3:  3                   30000   3

或者我们可以使用 base R

df1[with(df1, as.logical(ave(total_transfered_amount, id, 
              FUN=function(x) quantile(x, 0.9) < x))),]
#   id total_transfered_amount day
#5   1                   10000   4
#8   2                   40000   2
#14  3                   30000   3

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

标绘数据2.5%百分位数97.5%百分位数

如何使用partitionedBy计算按列分组的百分位数?

使用dplyr窗口函数计算百分位数

计算数据框列中每个值的百分位数

计算90%百分位数并用R中的组中位数代替

根据组在熊猫数据框中查找百分位数

使用numpy.percentile在数据框中的不同ID上获取百分位数

Pandas groupby,其中列值大于组的x百分位数

在数据框中为每个组查找不同的百分位数

过滤python pandas中两个百分位数之间的数据

如何在Excel中使用百分位数按日期组五分位数

从数据帧计算相应的第n个百分位数

按组在Spark-Scala中查找百分位数

使用dplyr的数据帧中的频率加权百分位数

根据第90个百分位数内的值过滤出数据框

使用R,如何使用已知的均值,中位数,百分位数估算分布?

通过过滤数据帧输出百分位数

如何同时在多个变量的前n个百分位数中找到个案?

获取百分位数作为 SparkR 数据框中的列

如何使用百分位数过滤数据框以滤除异常值?

如何计算数据集的第 99 个百分位数

使用 Linux 工具计算 csv 文件中数据的百分位数

如何创建一个带有百分位数的新列?

python pandas在列中查找组的百分位数

R - 一次替换和删除数据帧或多列中的第一个和最后一个百分位数

使用 SQL 计算组/分区的累积百分位数

使用 SQL 计算组/分区的百分位数

如何在不使用多个 np 语句的情况下打印某个百分位数以上的列表中的值(例如:第 95-100 个百分位数的列表编号)?

如何从每天第 99 个百分位数的结果中提取 id