f<- function(x){
  return( 5*x+1)
}
x<-c(0,10)
df<-data.frame(x)
library(ggplot2)
ggplot()+ stat_function(data=df,aes(x),fun=f)

f<- function(x){
  return( x^2)
}
x<-c(0,10)
df<-data.frame(x)
ggplot()+ stat_function(data=df,aes(x),fun=f)

x<-c(-10,10)
df<-data.frame(x)
ggplot()+ stat_function(data=df,aes(x),fun=f)

g<-function(x){
  return( x^4+x*5-x^3 + 6)
}
x<-c(-10,10)
df<-data.frame(x)
ggplot()+ stat_function(data=df,aes(x),fun=g)

library(readxl)
data <- read_excel("E:/Dat.xlsx")
head(data)
## # A tibble: 6 x 2
##       x       y
##   <dbl>   <dbl>
## 1 7.29   172   
## 2 7.75   181   
## 3 0.443 -  5.52
## 4 4.93    69.5 
## 5 6.48   140   
## 6 4.26    37.7
lm(y~ x,data=data)
## 
## Call:
## lm(formula = y ~ x, data = data)
## 
## Coefficients:
## (Intercept)            x  
##      -65.27        34.04
func<-function(x){
  return( 34.04 *x -65.27)
}
ggplot()+geom_point(data=data, aes(x=x,y=y))

ggplot()+geom_point(data=data, aes(x=x,y=y,color=x))+ 
  stat_function(data=data,aes(x=x,y=y),fun=func)

x<-data$x
y<- func(x)
y
##   [1]  183.017996  198.680262  -50.190997  102.453808  155.181896
##   [6]   79.835553  -14.840886  129.344085  206.040588  125.730367
##  [11]   98.186147  247.953248   53.748279  224.024462   17.753870
##  [16]   82.017102  -42.685811   54.621986  199.921744   98.887872
##  [21]  111.785450  348.321332  107.842928  209.686537  111.997372
##  [26]   42.755832  253.227841  -33.284945  230.678315  139.915572
##  [31]   95.772879  289.188573   67.183634   82.810711   86.258166
##  [36]   91.751961  -37.868214  227.614523  144.874525  248.386180
##  [41]  204.995682  224.090653   -5.634698  275.313274  113.971390
##  [46]    7.616998   28.580879  315.484371  -16.801985  216.182908
##  [51]  152.635419  115.444534  -10.212360  137.218084   42.115391
##  [56]  115.160108   19.115035  -32.021312 -131.686024  170.188067
##  [61]  114.649677   84.804949   40.380331  -13.444215   87.512255
##  [66]   19.289915  188.504211  107.813977  315.318291    5.020226
##  [71]  149.642463    6.333776  -30.763066   81.878616  194.605480
##  [76]   82.649205  160.817727  -14.794046  223.851318  388.863837
##  [81]  170.387831   77.443230  -78.456551  -31.182105   99.069551
##  [86]  158.962366  314.471158   15.493468  -45.920395  212.157826
##  [91]  153.389390  116.422444  157.809290  114.110502  -17.207398
##  [96]   90.008751  307.233446  151.700308   81.374193   80.942225
means<-data.frame(x,y)
ggplot()+geom_point(data=data, aes(x=x,y=y,color=x))+ 
  stat_function(data=data,aes(x=x,y=y),fun=func)+
  geom_point(data=means,aes(x=x,y=y),color='red',size=1)

data$group<-1:100
means$group<-1:100
newdata<-rbind(data, means)
head(newdata)
## # A tibble: 6 x 3
##       x       y group
##   <dbl>   <dbl> <int>
## 1 7.29   172        1
## 2 7.75   181        2
## 3 0.443 -  5.52     3
## 4 4.93    69.5      4
## 5 6.48   140        5
## 6 4.26    37.7      6
ggplot()+geom_point(data=data, aes(x=x,y=y,color=x))+ 
  stat_function(data=data,aes(x=x,y=y),fun=func)+
  geom_point(data=means,aes(x=x,y=y),color='red',size=1)+
  geom_line(data=newdata,aes(x=x,y=y,group=group))

sum((data$y-means$y)^2)
## [1] 158423.5
lm(y~x +I(x^2))
## 
## Call:
## lm(formula = y ~ x + I(x^2))
## 
## Coefficients:
## (Intercept)            x       I(x^2)  
##  -6.527e+01    3.404e+01    3.904e-17
fn<-function(x){
  return(3.904e-17 *x^2 +3.404e+01*x-6.527e+01)
}
ggplot()+geom_point(data=data, aes(x=x,y=y,color=x))+ 
  stat_function(data=data.frame(x=c(-5,20)),aes(x=x),fun=fn)