Importing the dataset

dataset = read.csv("C:/RClass/Salary_Data.csv")

Splitting the dataset into the Training set and Test set

# install.packages('caTools')
library(caTools)
## Warning: package 'caTools' was built under R version 4.1.3
set.seed(2023)
split = sample.split(dataset$Salary, SplitRatio = 2/3)
training_set = subset(dataset, split == TRUE)
test_set = subset(dataset, split == FALSE)

Fitting Simple Linear Regression to the Training set

regressor = lm(formula = Salary ~ YearsExperience, 
               data = training_set)
summary(regressor)
## 
## Call:
## lm(formula = Salary ~ YearsExperience, data = training_set)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7301.7 -3219.4  -916.9  2915.8  8645.2 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      26616.2     2176.5   12.23 3.72e-10 ***
## YearsExperience   9119.9      396.2   23.02 8.38e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5128 on 18 degrees of freedom
## Multiple R-squared:  0.9672, Adjusted R-squared:  0.9653 
## F-statistic:   530 on 1 and 18 DF,  p-value: 8.384e-15

Predicting the Test set results

y_pred = predict(regressor, newdata = test_set)

Visualizing the Training set results

# install.packages('ggplot2')
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.1.3
ggplot() + 
  geom_point(aes(x = training_set$YearsExperience, y = training_set$Salary),
             color = 'red') +
  geom_line(aes(x = training_set$YearsExperience, y = predict(regressor, newdata = training_set)),
            color = 'blue') +
  ggtitle('Salary vs. Experience (Training set)') +
  xlab('Years of Experience') +
  ylab('Salary')