2017-09-26 4 views
0

ich auf dieser Seite ähnliche Fragen lese darüber, wie eine weise definierte Funktion in R plotten und ich schreibe diesen CodePlotten abschnittsweise eine Funktion in R

myfunction = function(x){(x<-1)*(x^2+2*x)+(-1<=x & x<=1)*x+(x>1)*(-1)} 
g=Vectorize(myfunction) 
plot(g,-5,5) 

jedoch die Handlung nur eine gerade Linie ist, dh , es zeigt nicht die definierte Funktion. Was mache ich falsch?

Antwort

2

<- ist Zuweisung und wird nicht als "weniger als negativ" interpretiert. Fügen Sie ein Leerzeichen hinzu und Sie werden sehen, was Sie erwarten.

myfunction = function(x){(x< -1)*(x^2+2*x)+(-1<=x & x<=1)*x+(x>1)*(-1)} 
+1

Hinweis im Allgemeinen, dass es besser wäre, diese auf mehrere Zeilen zu brechen und mehr Räume hinzufügen, in es besser lesbar zu machen, aber ich habe nur das Nötigste Ihre aktuelle Code Arbeit zu machen. – Dason

+1

Ich finde, dass ein Style Guide hilft, Fehler wie diesen zu vermeiden (zB [tidyverse] (http://style.tidyverse.org/index.html) oder [Google] (https://google.github.io/styleguide /Rguide.xml)). – Lyngbakr