【发布时间】:2020-07-05 16:07:43
【问题描述】:
我想使用来自向量A 的值构造一个原子向量X,例如length(X)>=length(A)。此外,X 的值由第三个向量B 索引,使得length(B)=length(X)。构造X的映射如下:
X[i] <- A[B[i]]
现在,我很清楚如何在 for 循环中构造向量 X。我的问题是:由于X 应该很大(length(X) ~ 30,000),有没有办法矢量化X 的构造?也就是说,应用一个避免逐个元素计算的覆盖函数。我研究了诸如sapply 和mapply 之类的函数,但我没有看到如何将向量B 的索引合并到这些函数中。
例如,如果:
A <- c(20,31,17,110,87)
B <- c(1,1,2,1,1,3,4,3,5)
我希望X 是:
X <- c(20,20,31,20,20,17,110,17,87)
【问题讨论】:
-
您能否添加一个示例,说明您正在尝试做什么以及预期的输出?
-
用示例更新
标签: r vector vectorization