繁体   English   中英

根据列组将百分位数添加到数据表

Adding percentiles to datatable based on column groups

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个包含分数的数据表,并想在分数列中添加基于他们所在的年龄组和年龄的百分比。

Age  Group  Score1 Score2  
22   A      95     85  
23   B      88     76  
25   B      84     56  
22   A      68     65  
25   B      76     85  
23   B      59     75 

因此,例如,22A 23B和25B在百分位数的计算中都是分开的。

1 个回复

您发布的示例中每个组的案例很少,因此我以mtcars为例:

library(dplyr)

# example data
df = mtcars %>% select(am, cyl, disp, wt)

假设am, cyl是您的分组变量,而disp, wt是您的分数:

df %>% 
  group_by(am, cyl) %>%
  mutate_at(vars(disp, wt), funs(prc = cume_dist)) %>%
  ungroup() %>%
  arrange(am, cyl) %>%  # not needed; only for visualisation
  data.frame()          # not needed; only for visualisation

#    am cyl  disp    wt  disp_prc     wt_prc
# 1   0   4 146.7 3.190 1.0000000 1.00000000
# 2   0   4 140.8 3.150 0.6666667 0.66666667
# 3   0   4 120.1 2.465 0.3333333 0.33333333
# 4   0   6 258.0 3.215 1.0000000 0.25000000
# 5   0   6 225.0 3.460 0.7500000 1.00000000
# 6   0   6 167.6 3.440 0.5000000 0.75000000
# 7   0   6 167.6 3.440 0.5000000 0.75000000
# 8   0   8 360.0 3.440 0.6666667 0.16666667
# 9   0   8 360.0 3.570 0.6666667 0.33333333
# 10  0   8 275.8 4.070 0.2500000 0.75000000
# 11  0   8 275.8 3.730 0.2500000 0.41666667
# 12  0   8 275.8 3.780 0.2500000 0.50000000
# 13  0   8 472.0 5.250 1.0000000 0.83333333
# 14  0   8 460.0 5.424 0.9166667 1.00000000
# 15  0   8 440.0 5.345 0.8333333 0.91666667
# 16  0   8 318.0 3.520 0.4166667 0.25000000
# 17  0   8 304.0 3.435 0.3333333 0.08333333
# 18  0   8 350.0 3.840 0.5000000 0.58333333
# 19  0   8 400.0 3.845 0.7500000 0.66666667
# 20  1   4 108.0 2.320 0.7500000 0.87500000
# 21  1   4  78.7 2.200 0.3750000 0.75000000
# 22  1   4  75.7 1.615 0.2500000 0.25000000
# 23  1   4  71.1 1.835 0.1250000 0.37500000
# 24  1   4  79.0 1.935 0.5000000 0.50000000
# 25  1   4 120.3 2.140 0.8750000 0.62500000
# 26  1   4  95.1 1.513 0.6250000 0.12500000
# 27  1   4 121.0 2.780 1.0000000 1.00000000
# 28  1   6 160.0 2.620 1.0000000 0.33333333
# 29  1   6 160.0 2.875 1.0000000 1.00000000
# 30  1   6 145.0 2.770 0.3333333 0.66666667
# 31  1   8 351.0 3.170 1.0000000 0.50000000
# 32  1   8 301.0 3.570 0.5000000 1.00000000

然后,您可以将百分位数四舍五入到小数点后两位,或者创建一个%值,并将它们与您的实际分数合并到一栏中。

2 根据组计算的百分位数向数据框添加列

我有一个具有以下形式的数据框 我想添加一个带有两个可能值的Alert列: “1”,如果Value对于特定Group或者超过1 - thr百分或小于thr的百分Value对每个特定的Group ,其中thr是一个用户定义的阈值 否则为'0'。 例如,假设的是, 1 ...

3 将百分位数(或四分位数)计算添加到现有的SQL查询中

我有以下查询: 我正在尝试将25Percentile添加到上面的SQL中。 这是25Prercentile的SQL: 最后,25Percentile应该为在第一个查询中创建的子集生成百分位计算,类似于在第一个查询中计算峰度的方式(即,在数据的子集上)。 我上面为25Perce ...

5 Excel数据透视表和百分位数/四分位数/中位数

在我的工作中,经常出现的一件事是需要对数据集执行中位数,四分位数和百分位数运算。 我也不得不使用excel(不是我的选择),并且出于功能原因('dem slicers,hot damn),我也不得不使用数据透视表。 Excel(至少Excel 2010)在其数据透视表中没有此功能。 某 ...

6 多列的百分位数

我有一个约有200-250列的表格,我想计算这些列中每一个的百分位数。 Hive给出函数Percentile(int_exp,p),该函数返回int_exp列的pth百分位值。 但是对于其余250列运行相同的查询似乎很多余。 有没有一种方法可以一次找到所有列的百分位数? ...

7 绘图数据 2.5% 百分位数 97.5% 百分位数

我正在处理时间序列数据,所以出于 SO 目的,我会弥补一些.. 如果我绘制它,它看起来像这样: df.plot() 我可以打印df上下百分位数的值: df.quantile(0.025) df.quantile(0.975) 但是我如何在图表中添加线条来表示数据集的第 2.5 个百分位数 ...

8 计算组的百分位数?

如何使用Elastic Search计算一个字段被另一个字段分组的百分比? 我已经试过了: 因此,基本上我想按make对所有数据进行分组,然后计算avgdom的百分位数,但这会导致错误: {“错误”:{“ root_cause”:[{“ type”:“ aggregation ...

9 Power Query:在组内查找百分位数

我有多个数据源汇集在一起​​,正在创建一个热图突出显示每个。 我的数据按以下方式设置: 我想创建第四列,显示每个类别中分数的百分位数,因为每个类别都有自己的比例(有些是 0-5,有些是 0-100 等) 这是使用 GroupBy 吗? ...

10 在 Power BI 中按组计算百分位数

下面是一个示例数据,我正在寻找一种解决方案来计算按国家/地区分组的销售数量的百分位数(第 25、第 50、第 75、第 100)。 因此,基本上根据 unit_quantity 将国家/地区从低、中 1、中 2 或高添加到不同的桶中。 因此,如果我在 power bi 中创建如下所示的表,我想 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM