在 R 中,我有一个由索引 (A) 和值 (B) 组成的向量。R 中将 A 和 B 扩展到 C 的有效(最好是并行)方法是什么?其中 C 是位于 A 索引中的 B 中的值?
例子:
A = c(4, 7, 11, 20)
B = c(11, 14, 22, 3)
C = c(0,0,0,11,0,0,14,0,0,0,22,0,0,0,0,0,0,0,0,3)
Run Code Online (Sandbox Code Playgroud)
蛮力方法是一个 for 循环,这不是我想要的。
这是一种方法 -
vec <- numeric(max(A))
vec[A] <- B
vec
#[1] 0 0 0 11 0 0 14 0 0 0 22 0 0 0 0 0 0 0 0 3
Run Code Online (Sandbox Code Playgroud)
其中初始化一个长度为 20 的vec <- numeric(max(A))
数值向量。max(A)