【问题标题】:How to use the outer() to calculate the median between each vector?如何使用 outer() 计算每个向量之间的中位数?
【发布时间】:2025-12-05 10:20:02
【问题描述】:

我希望标题不会太混乱......

基本上,我有两个长度为 n 的向量。我想将这两个向量转化为一个 n*n 矩阵(即 2 个包含 2 个数字的向量,每个向量变成一个 2*2 矩阵),其中矩阵中的每个位置是两个向量每个位置的中位数。

例如:

a<-as.vector(1,5)
b<-as.vector(1,5)

使用 outer() 给我一个 2*2 矩阵

  1 5
1
5

但是,如何用每个唯一组合之间的中值填充空矩阵?答案应该是这样的:

1 3
3 5

【问题讨论】:

    标签: r matrix vector outer-join median


    【解决方案1】:

    试试

     outer(a, b, FUN= Vectorize(function(x,y) median(c(x,y))))
     #     [,1] [,2]
     #[1,]    1    3
     #[2,]    3    5
    

    数据

    a <- c(1,5)
    b <- a
    

    【讨论】:

    • 总是超级快...!
    • ahhh...我忽略了vectorize()...我在玩这个...再次感谢你,akrun!
    • @Provisional.Modulation 没问题。很高兴为您提供帮助。
    • @TimBiegeleisen 实际上,我在 3 分钟后发布。所以,不知道它是否符合速度。但是,感谢您的投票。