我是 R 新手,尝试做一些练习。我想知道为什么第一个代码工作正常而第二个代码却不行。当我尝试运行第二个代码时,它说他找不到函数a
。
1.)
x = seq(from = - 9, to = 9, len = 100)
curve(dnorm(x,0,2),add = FALSE, from = -9, to = 9)
2.)
x = seq(from = - 9, to = 9, len = 100)
a = dnorm(x,0,2)
curve(a,add = FALSE, from = -9, to = 9)
最佳答案
使用curve
总是令人费解。看?curve
关于第一个参数 expr
,以及“详细信息”部分。
事实上,您误解了第一个(工作)案例。
curve(dnorm(x, 0, 2), from = 9, to = 9)
不使用x
你给了:seq(-9, 9, length = 100)
,但选择内部采样点。参见参数n
的curve
。在这里,您正在传递curve
形式论证的函数 x
,不是实值向量,如 a
在你的第二个(失败)案例中。
如果你不信,我们把线显示改为点显示:
curve(dnorm(x, 0, 2), n = 10, from = -9, to = 9, type = "p")
你看到了吗?即使您预设了 x <- seq(-9, 9, len = 100)
,图表上也只有 10 个点.
另一个补充示例是使用 xname
进行调整。让我们使用另一个变量,比如 foo
.
curve(dnorm(foo, 0, 2), from = -9, to = 9, xname = "foo")
没有变量foo
在这个 R session 中,但是上面的代码可以工作。因为xname
告诉curve
那foo
是一个形式变量。
关于r - curve() 在第一个示例中有效,但在第二个示例中无效,但它们看起来相同。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44086607/