首页 > 解决方案 > R:基于索引的应用于向量

问题描述

鉴于:

original_vector <- c(2, 2, 2, 3)
indices <- c(1, 0, 0, 1)

我想将一些功能应用于original_vector,但基于indices. 例如,如果函数是“以 5 为增量”,我想要的输出将是[7, 2, 2, 8].

我知道如何使用 for 循环来做到这一点,但我想在apply系列中使用一些东西。

有类似的问题,但它们似乎比我自己的用例更复杂。

标签: rvectorapply

解决方案


如果您想使用apply家庭中的某些东西,请考虑mapply并提供这两个向量。mapply并且自定义函数my_fun采用两个参数:original_vectorindices

my_fun <- function(vec, indices) {
  vec[indices == 1] <- vec[indices == 1] + 5
  vec
}

mapply(my_fun, original_vector, indices)

输出

[1] 7 2 2 8

推荐阅读