2015-01-04 34 views
0

我想噪音添加到R.我可以用一个循环做到这一点的向量:如何将噪声样本应用于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

由于您使用'地板(runif(1, min = -4,max = 4)'看起来你想创建整数。更简单/更直接的wa创建随机的,均匀分布的整数的方法是使用'?sample',即在你的情况下:'v + sample(-4:4,length(v),replace = TRUE)'。 –

+0

感谢您的提示。将做出更换。 – Ernie

回答

1

如果vvec

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 
+0

谢谢!以为我试过第一个答案,并发现所有矢量元素只有一个噪声样本,但显然它的工作原理!要迟到了。谢谢。 – Ernie

相关问题