Понимание функции кривой в R - PullRequest
0 голосов
/ 14 февраля 2019

Я новичок в R и пытаюсь лучше понять, как это работает.

Я не понимаю, почему с кривой функции нам не нужно писать функцию (x), я имею в виду, например, с plotнам нужно написать

 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)

без функции (x) перед pnorm, почему?

Мой второй вопрос, касающийся кривой, заключается в том, почему

curve(x+0 ,-3.5,3.5,col='BLUE',n=1000) 

работает нормально, но

curve(x,-3.5,3.5,col='BLUE',n=1000)

возвращает ошибку

Спасибо!

1 Ответ

0 голосов
/ 14 февраля 2019

Когда вы делаете

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.

...