【发布时间】:2017-02-02 14:58:29
【问题描述】:
我只是想要一些随机数据来试验不同的预测模型。
我的代码:
x <- 0
for (i in 1:200)
{
num <- runif(1, 0, 500)
neg <- round(runif(5, -1, 0))
percent <- ((0.01 * runif(1, 1, 10)) * num)
x[i] = num + (neg * percent)
}
这个想法是这应该产生 200 分。
num 是 0 到 500 之间的随机数
neg要么是-1要么是1,只是为了给随机偏移增加一些灵活性(随机生成点的负偏移或正偏移)
percent 只是原始生成的随机数的 1% 到 10% 之间的随机百分比,可以添加或减去
我用我的主要语言 C# 编写的非常相似的代码运行良好并生成了正确的绘图。我或多或少地尝试移植该代码。
每当我运行上述程序时,我都会收到以下错误(很多):
number of items to replace is not a multiple of replacement length
在for循环的最后一行代码触发。
我希望能够解决这个问题。任何帮助表示赞赏。谢谢!
【问题讨论】:
-
neg的长度为 5,因为您为其n参数提供了 5。因此,您尝试添加长度为 1 的num和长度为 5 的neg -
@Chrisss 我该如何解决这个问题?
<-是唯一的加法运算符吗?=提供相同的错误 -
如果
neg是 -1 或 1,那么你应该这样做:neg = round(runif(200,0,1)) * 2 - 1因为你的表达式将返回数字 -1 或 0 -
@KingDan,
<-是赋值运算符,类似于函数assign。=也是一个赋值运算符,但是,它的“权力”更加有限。阅读此stackoverflow.com/questions/2271575/…
标签: r