我是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)
答案 0 :(得分:2)
使用curve
总是令人费解。查看?curve
的第一个参数expr
,以及"详细信息"部分。
事实上,你误解了第一个(工作)案例。
curve(dnorm(x, 0, 2), from = 9, to = 9)
不使用您提供的x
:seq(-9, 9, length = 100)
,但会选择内部的采样点。请参阅n
的参数curve
。在这里,您在第二个(失败的)案例中将curve
正式参数x
的函数传递给a
而不是实值向量。< / p>
如果你不相信这一点,让我们改变显示行显示点:
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")
此R会话中没有变量foo
,但上述代码有效。由于xname
告诉curve
foo
是正式变量。