R翻译失败?

时间:2016-03-23 23:00:39

标签: r

我甚至不知道如何描述正在发生的事情,除了R知道变量的值,然后在函数内部错误地应用它。这是直接从我的终端复制的:

var n = $("iframe").width();

R知道> n2 [1] 4 > rnorm(n2) [1] 0.379217 -1.519947 1.602527 > rnorm(4) [1] -0.93154715 -0.82908620 0.55084001 0.09018763 ,它知道如何处理n2 = 4,但不知何故rnorm(4)被视为rnorm(n2)

以下是我的完整代码。我将R设置为将警告解释为错误,以停止出现问题的循环。运行此操作后,请检查rnorm(3)的值,然后查看n2的内容。

rnorm(n2)

我在Windows 7 64位上运行R 3.2.3。

对不起,我花了一点时间才把问题弄清楚了。长时间用户,第一次海报。

由于

1 个答案:

答案 0 :(得分:1)

为了清楚访问此页面的其他人:上面的代码会导致错误:

Error in y[position:(position + n - 1)] = newy (from #9) : 
  (converted from warning) number of items to replace is not a multiple of replacement length

这是因为作业左侧的长度与右侧的长度不同:

length(position:(position+n-1))
# [1] 10
length(newy)
# [1] 9

追溯代码,导致newy缩短的原因是什么?

lengths(list(newy1, newy0))
# [1] 6 3
n2
# [1] 4

“3”是罪魁祸首,应该是“4”。这是非常具体的R FAQ 7.31

n2 == 4
# [1] FALSE
n2 - 4
# [1] -8.881784e-16

在分配round时,您可以考虑使用floorceilingas.integern1 = p*n或其他一些功能(自{{1}以来是分数)。

这种现象的一个问题是它并不总是表现不佳。