【发布时间】:2015-12-14 07:07:22
【问题描述】:
在 R 中,我有两个矩阵 x 和 y,它们都有相同的列数,例如:
x <- matrix(runif(10*20),10,20)
y <- matrix(runif(50*20),50,20)
创建包含以下比较结果的矩阵的最有效方法是什么。比较 x 中的每一行与 y 中的每一行(10x50 行比较),返回 y 行中有多少数小于 x 行中对应的数。将结果放入 10x50 的结果矩阵中。
以下代码有效,但效率不高:
result <- matrix(NA,10,50)
for (i in 1:10) {
for (j in 1:50) {
result[i,j]<- sum(x[i,]>y[j,])
}
}
【问题讨论】:
-
你能把你的example reproducible?.您提供的代码没有运行。
-
你想说“返回
x行中有多少个数小于y行中对应的数”,对吗? -
你怎么知道它没有效率?你把它比作什么?
-
runif(50,20)不是一个东西。 -
@simon wuya,你能澄清/更新你的问题吗?
标签: r performance matrix row