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这样做一个简单的方法,但它躲开我。帮助赞赏。
我想噪音添加到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这样做一个简单的方法,但它躲开我。帮助赞赏。
如果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
谢谢!以为我试过第一个答案,并发现所有矢量元素只有一个噪声样本,但显然它的工作原理!要迟到了。谢谢。 – Ernie
由于您使用'地板(runif(1, min = -4,max = 4)'看起来你想创建整数。更简单/更直接的wa创建随机的,均匀分布的整数的方法是使用'?sample',即在你的情况下:'v + sample(-4:4,length(v),replace = TRUE)'。 –
感谢您的提示。将做出更换。 – Ernie