【问题标题】:Calculate quantile for a whole matrix计算整个矩阵的分位数
【发布时间】:2017-06-29 20:26:21
【问题描述】:

出于工作目的,我需要找到矩阵的整体分位数分割点。我知道我可以将矩阵“取消列出”或“分解”为二维列,并且 R 可以轻松地将“分位数”函数应用于向量。

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

【问题讨论】:

    标签: r statistics


    【解决方案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,它就不会改变。

    【讨论】:

      猜你喜欢
      • 2020-01-28
      • 2019-01-21
      • 2019-03-14
      • 1970-01-01
      • 2023-02-24
      • 2021-05-07
      • 2016-10-19
      • 1970-01-01
      • 2020-05-19
      相关资源
      最近更新 更多