R语言 如何添加'apply'函数来计算多个第95百分位数?

3pmvbmvn  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(212)

我有50个项目,从第1列到第50列。我想计算每个项目的第95百分位数,以取代离群值。
我找到了计算特定百分位数的分位数函数quantile(data$item1, 0.95),但似乎我需要制作50个代码来获得每个项目的50个不同的百分位数分数。
有没有办法使用applylapply函数来计算每个项目的第95百分位数?
我试着按照下面的方式(我想我肯定错了!)。

quantile <- lapply(1:50,
                   function(v) quantile(data[v], probs = 0.95, na.rm = TRUE,
                                        names = FALSE, type = 9, digites = 2))
quantile

然而,当我将该函数的结果与单独计算函数(quantile(data$item1, 0.95))进行比较时,数字不匹配。

ctehm74n

ctehm74n1#

您可以对数据框使用apply()并指定列边距(此处为2):

my_q <- apply(data[1:50], 2, quantile, probs=0.95, na.rm=T)

或给予更多分位数(例如,第50和第95):

my_q <- apply(data[1:50], 2, quantile, probs= c(0.50,0.95), na.rm=T)

相关问题