我想在R中向量中添加噪声。我可以用循环来做到这一点:
N <- 4; v <- c(1,5,3,8)
for (i in (1:N)) {
vec[i] <- vec[i] + floor(runif(1, min = -4, max = 4)
}
必须有一种简单的方法来使用lapply来做到这一点,但它让我望而却步。帮助赞赏。
答案 0 :(得分:1)
如果v
是vec
set.seed(24)
v+floor(runif(N, min=-4, max=4))
#[1] -1 2 4 8
与
相同set.seed(24)
for(i in 1:N){
v[i] <- v[i]+ floor(runif(1, min = -4, max = 4))
}
v
#[1] -1 2 4 8
如果您需要apply
家庭解决方案
set.seed(24)
mapply(`+`, v, floor(runif(N, min=-4, max=4)))
#[1] -1 2 4 8