Я хотел бы построить атоми c вектор X
, используя значения из вектора A
, такие что length(X)>=length(A)
. Кроме того, значения X
индексируются третьим вектором B
, таким что length(B)=length(X)
. Отображение для построения X выглядит следующим образом:
X[i] <- A[B[i]]
Теперь мне ясно, как бы я построил вектор X
в a для l oop. Мой вопрос: поскольку 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)