【发布时间】:2017-06-29 20:26:21
【问题描述】:
出于工作目的,我需要找到矩阵的整体分位数分割点。我知道我可以将矩阵“取消列出”或“分解”为二维列,并且 R 可以轻松地将“分位数”函数应用于向量。
但是,一旦我取消列出矩阵并计算分位数,我不知道如何将未列出的数据恢复到原始数据。有人可以告诉我一种可以实现这一目标的方法吗?或者有没有其他方法可以实现我的目的?
【问题讨论】:
标签: r statistics
出于工作目的,我需要找到矩阵的整体分位数分割点。我知道我可以将矩阵“取消列出”或“分解”为二维列,并且 R 可以轻松地将“分位数”函数应用于向量。
但是,一旦我取消列出矩阵并计算分位数,我不知道如何将未列出的数据恢复到原始数据。有人可以告诉我一种可以实现这一目标的方法吗?或者有没有其他方法可以实现我的目的?
【问题讨论】:
标签: r statistics
您似乎对自己的数据结构不是很清楚。如果您实际上有一个 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,它就不会改变。
【讨论】: