出于工作目的,我需要找到矩阵的整体分位数切割点。我知道我可以将矩阵“拆分”或“拆分”为二维列,R可以很容易地为矢量应用“分位数”函数。
然而,一旦我取消列表矩阵并计算分位数,我不知道如何将未列出的数据恢复到原始数据。有人能告诉我一个可以实现这个目标的方法吗?或者是否有其他方法可以达到我的目的?
答案 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
,就不会更改。