计算整个矩阵的分位数

时间:2017-06-28 23:47:35

标签: r statistics

出于工作目的,我需要找到矩阵的整体分位数切割点。我知道我可以将矩阵“拆分”或“拆分”为二维列,R可以很容易地为矢量应用“分位数”函数。

然而,一旦我取消列表矩阵并计算分位数,我不知道如何将未列出的数据恢复到原始数据。有人能告诉我一个可以实现这个目标的方法吗?或者是否有其他方法可以达到我的目的?

1 个答案:

答案 0 :(得分:1)

您的数据结构似乎不太清楚。如果您实际拥有类matrix的对象,则无需unlist或其他任何内容,您可以直接在矩阵上调用quantile

> m = matrix(1:100, nrow = 10)
> quantile(m, probs = c(.25, .5, .75))
  25%   50%   75% 
25.75 50.50 75.25 

如果您有data.frame,则需要unlist(或使用as.matrix转换为矩阵),但不需要覆盖已保存的数据框。

> my_df = data.frame(c1 = 1:5, c2 = 11:15)
> quantile(unlist(my_df), probs = c(.25, .5, .75))
  25%   50%   75% 
 3.25  8.00 12.75 
> my_df
  c1 c2
1  1 11
2  2 12
3  3 13
4  4 14
5  5 15

最后注意my_df仍然是数据框。只要您不使用未列出的版本重新分配my_df,就不会更改。