删除R中分布的顶部和底部5%

时间:2016-01-30 23:42:19

标签: r

我计算了学生t分布的1000次观察的截断平均值。我需要将观察结果排除在95%以上且低于5%。任何人都可以建议这样做,因为我根本不确定。

提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以使用quantile功能执行此任务。解决方案如下:

#You can vary number of observation, still this solution will still work     
n <- 1000
set.seed(123)
numVec <- rnorm(n)
p95 <- quantile(numVec, 0.95)
p05 <- quantile(numVec, 0.05)
meanTrunc <- mean(numVec[which(numVec <= p95 & numVec >= p05)])

我使用了&gt; =和&lt; =,因为在你的问题中,你写了&#34;需要将观察结果排除在95%以上且低于5%&#34;

答案 1 :(得分:0)

评论建议您可以使用sort从学生分布中订购n观察样本,然后您可以选择感兴趣的观察[50:950]并找到平均值。

n <- rt(1000, 2)
mean(n)
n_order <- sort(n)
mean(n_order[50:950])