【发布时间】:2018-08-15 09:28:17
【问题描述】:
我正在尝试保存下面代码的输出。我知道“打印”是问题所在,但我不知道用什么代替。
我通常想知道是否没有其他方法可以代替for循环:对于向量(x)中的每个值,我想绘制一个新的随机数(这里使用runif)并将其匹配到给定的值(例如0.5)。根据结果,x 的新值应存储在向量 x2 中(类似于下面的 if-else 示例)。放弃 for 循环,我找不到一种方法来总是为向量 x 中的每个值绘制一个新的随机数。 如果有任何帮助,我将不胜感激!
x <- c(2,2,2,3,3,3)
for(i in x){
if(runif(1) <= 0.5){
print(i + 1)
} else {
print(i)
}
}
【问题讨论】:
-
x2 <- ifelse(runif(length(x)) <= 0.5, x + 1, x)不做你想做的事吗?我认为这里不需要循环。 -
感谢您的回答!但问题就在这里:这样,只生成一个随机数并与向量 x 中的值进行比较。我想为每个值绘制一个新数字。
-
runif(length(x))生成一个随机数向量,x中的每个元素一个,而不是一个。 -
@MikkoMarttila,再次感谢,现在它可以工作了!你说得对,似乎不需要循环。
标签: r for-loop if-statement