2017-09-26 83 views
0

我讀其他類似的問題,在這個網站如何繪製R中分段函數分段函數,我寫這篇文章的代碼繪圖中的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) 

但是情節只是一條直線,即它不繪製定義的函數。我做什麼錯了?

回答

2

<-是賦值,不會被解釋爲「小於負數」。在那裏添加一個空間,你會看到你的期望。

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

注意,通常它會更好,打破這份長達多行並添加更多的空間中,使其更具可讀性,但我只是做了最低限度,使您當前的代碼工作。 – Dason

+1

我發現下面的風格指南有助於避免類似的錯誤(例如[tidyverse](http://style.tidyverse.org/index.html)或[Google](https://google.github.io/styleguide /Rguide.xml))。 – Lyngbakr