我是R的新手,并试图更好地了解它的工作原理。
我不明白为什么对于函数曲线我们不需要编写函数(x),例如,对于图,我们需要编写
plot(function(x) pnorm(x,0,1),-3.5,3.5,col='BLUE',n=1000)
但是如果我们使用曲线,就必须写
curve(pnorm(x,0,1),-3.5,3.5,col='BLUE',n=1000)
在pnorm之前没有function(x),为什么?
关于曲线的第二个问题是为什么
curve(x+0 ,-3.5,3.5,col='BLUE',n=1000)
工作正常,但是
curve(x,-3.5,3.5,col='BLUE',n=1000)
返回错误
谢谢!
答案 0 :(得分:1)
完成时
plot(function(x) pnorm(x,0,1),-3.5,3.5,col='BLUE',n=1000)
您实际上是在呼叫plot.function
。 (请注意plot()
和?plot
下?plot.function
的自变量不同。)plot.function
期望其第一个参数具有一个函数,而curve
期望一个表达式:
# expr: The name of a function, or a call or an expression written as
# a function of ‘x’ which will evaluate to an object of the
# same length as ‘x’.
对于第二个问题,似乎curve
可以将x+0
识别为一个表达式,但是仅凭x
它就在寻找名为x
的对象(因此错误)。如果您将x
分配给x=5
之类的东西,则
curve(x+0 ,-3.5,3.5,col='BLUE',n=1000)
也将返回错误,因为现在确定x+0
不是表达式。 x
中的变量curve
不一定特殊。您可以使用xname
参数将变量更改为任意值。