r - curve() 在第一个示例中有效,但在第二个示例中无效,但它们看起来相同。为什么?

标签 r function plot statistics normal-distribution

我是 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) ,但选择内部采样点。参见参数ncurve 。在这里,您正在传递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告诉curvefoo是一个形式变量。

关于r - curve() 在第一个示例中有效,但在第二个示例中无效,但它们看起来相同。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44086607/

相关文章:

image - 我可以在 R 中将图像绘制为 PDF 文件吗?

matlab - 如何在不创建许多文件的情况下将我的 Matlab 代码分解为函数?

python - matplotlib - 使用 Python 和 numpy 绘制 2D map 数据

r - 在 plm 中循环子集

在不循环的情况下删除 R Dataframe 中多次运行的行

r - 查找具有所有唯一值的 data.frame 的第一列的最优雅的方法是什么?

oracle - 如何避免 PL SQL 中未使用参数的警告?

python - 提高 pandas 中日期时间比较的性能

matlab - MATLAB 中绘图的多个 x 轴和 y 轴

javascript - 使用 Highcharts 的 XY 轨迹图