【问题标题】:Obtaining a subset from the data frame cutting off the outliers从数据框中获取一个子集,去除异常值
【发布时间】:2021-10-24 05:14:45
【问题描述】:

我正在使用一个数据集 (csv file),了解 195 个国家在 1980-2020 年期间的通货膨胀率。我想制作描述 1980-2020 年期间通货膨胀值分布的图表。与此同时,我制作了这张图表:

我对图表的问题是我想描绘一个截断的数据集:通货膨胀值在 99.5% 的百分位数内,并且从数据集中消除了异常值。非常感谢任何见解。

【问题讨论】:

  • 您能否更好地解释您需要的步骤?例如:1. 排除每条尾巴的 0.25%(保留 99.5%),然后 2. 排除异常值,即每个箱线图的异常值(四分位距)。

标签: r quantile


【解决方案1】:

您可以使用quantile-函数:

library(dplyr)

data %>% 
  group_by(year) %>% 
  filter(value <= quantile(value, 0.995))

删除每年计算的 > 99.5 % 百分位数的每个值。如果您不想按年计算,请删除 group_by()-line。

【讨论】:

  • 非常感谢!这解决了我的问题。
  • 正如 Fernando Barbose 所指出的,您还应该考虑删除较低的 0.05 %。
  • 感谢提醒!我是这样做的:r &lt;- .005; imf.inflation_trcd &lt;- imf.inflation %&gt;% group_by(year) %&gt;% filter(value &lt;= quantile(value, c(r, 1-r))) 结果图表附在link
猜你喜欢
  • 2013-07-02
  • 2021-05-03
  • 2015-07-29
  • 2015-12-24
  • 1970-01-01
  • 2019-12-25
  • 2017-01-03
  • 2011-06-14
相关资源
最近更新 更多