我很困惑为什么#1会起作用而#2不会?
x=rnorm(100);curve(dnorm(x))
y=rnorm(100);curve(dnorm(y))
Error in curve(dnorm(y)) : 'expr' must be a function, or a call or an expression containing 'x'
答案 0 :(得分:1)
因为curve()
有点神奇,默认情况下需要一个表达式写成x的函数(字面意思):来自?curve
。
expr:函数的名称,或写为的调用或表达式 'x'的函数,它将评估一个对象 与'x'相同的长度。
您可以使用
curve(dnorm(y),xname="y")
我必须提醒您,您在代码中通过x
定义的y
和rnorm()
值将被完全忽略。 (你可以编辑你的问题来更好地解释你想要做的事情......)