鑒于:
original_vector <- c(2, 2, 2, 3)
indices <- c(1, 0, 0, 1)
我想對 應用一些函式original_vector,但基于indices. 例如,如果函式是“遞增 5”,我想要的輸出將是[7, 2, 2, 8].
我知道如何用 for 回圈來做到這一點,但我想在apply系列中使用一些東西。
有類似的問題,但它們似乎比我自己的用例更復雜。
uj5u.com熱心網友回復:
如果您想使用apply家庭中的東西,請考慮mapply并提供這兩個向量。mapply并且自定義函式my_fun采用兩個引數:original_vector和indices。
my_fun <- function(vec, indices) {
vec[indices == 1] <- vec[indices == 1] 5
vec
}
mapply(my_fun, original_vector, indices)
輸出
[1] 7 2 2 8
uj5u.com熱心網友回復:
在dplyr你可以這樣做:
library(dplyr)
data.frame(original_vector, indices) %>%
mutate(original_vector = ifelse(indices > 0,
original_vector 5,
original_vector))
original_vector indices
1 7 1
2 2 0
3 2 0
4 8 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/351302.html
