How to Use summary() Function in R (With Examples)?

The summary() function in R is used to generate a summary of various data types, such as vectors, matrices, data frames, and functions. It is a generic function that can be used to generate summaries for different types of variables such as numeric, factor, logical, and character. It can also be used to generate summary statistics, including mean, median, mode, standard deviation, variance, and quartiles. By using the summary() function, you can quickly and easily generate a summary of your data quickly and easily.


The summary() function in R can be used to quickly summarize the values in a vector, data frame, regression model, or ANOVA model in R.

This syntax uses the following basic syntax:

summary(data)

The following examples show how to use this function in practice.

Example 1: Using summary() with Vector

The following code shows how to use the summary() function to summarize the values in a vector:

#define vector
x <- c(3, 4, 4, 5, 7, 8, 9, 12, 13, 13, 15, 19, 21)

#summarize values in vector
summary(x)

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   3.00    5.00    9.00   10.23   13.00   21.00 

The summary() function automatically calculates the following summary statistics for the vector:

  • Min: The minimum value
  • 1st Qu: The value of the 1st quartile (25th percentile)
  • Median: The median value
  • 3rd Qu: The value of the 3rd quartile (75th percentile)
  • Max: The maximum value

Note that if there are any missing values (NA) in the vector, the summary() function will automatically exclude them when calculating the summary statistics:

#define vector
x <- c(3, 4, 4, 5, 7, 8, 9, 12, 13, 13, 15, 19, 21, NA, NA)

#summarize values in vector
summary(x)

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
   3.00    5.00    9.00   10.23   13.00   21.00       2

Example 2: Using summary() with Data Frame

The following code shows how to use the summary() function to summarize every column in a data frame:

#define data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, 28))

#summarize every column in data frame
summary(df)

     team               points        assists      rebounds   
 Length:5           Min.   :86.0   Min.   :28   Min.   :24.0  
 Class :character   1st Qu.:88.0   1st Qu.:31   1st Qu.:24.0  
 Mode  :character   Median :90.0   Median :33   Median :28.0  
                    Mean   :91.6   Mean   :33   Mean   :26.8  
                    3rd Qu.:95.0   3rd Qu.:34   3rd Qu.:28.0  
                    Max.   :99.0   Max.   :39   Max.   :30.0 

Example 3: Using summary() with Specific Data Frame Columns

The following code shows how to use the summary() function to summarize specific columns in a data frame:

#define data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, 28))

#summarize every column in data frame
summary(df[c('points', 'rebounds')])

     points        rebounds   
 Min.   :86.0   Min.   :24.0  
 1st Qu.:88.0   1st Qu.:24.0  
 Median :90.0   Median :28.0  
 Mean   :91.6   Mean   :26.8  
 3rd Qu.:95.0   3rd Qu.:28.0  
 Max.   :99.0   Max.   :30.0 

Example 4: Using summary() with Regression Model

The following code shows how to use the summary() function to summarize the results of a linear regression model:

#define data
df <- data.frame(y=c(99, 90, 86, 88, 95, 99, 91),
                 x=c(33, 28, 31, 39, 34, 35, 36))

#fit linear regression model
model <- lm(y~x, data=df)

#summarize model fit
summary(model)

Call:
lm(formula = y ~ x, data = df)

Residuals:
     1      2      3      4      5      6      7 
 6.515 -1.879 -6.242 -5.212  2.394  6.273 -1.848 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  88.4848    22.1050   4.003   0.0103 *
x             0.1212     0.6526   0.186   0.8599  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 5.668 on 5 degrees of freedom
Multiple R-squared:  0.006853,	Adjusted R-squared:  -0.1918 
F-statistic: 0.0345 on 1 and 5 DF,  p-value: 0.8599

Related: 

Example 5: Using summary() with ANOVA Model

The following code shows how to use the summary() function to summarize the results of an ANOVA model in R:

#make this example reproducible
set.seed(0)

#create data frame
data <- data.frame(program = rep(c("A", "B", "C"), each = 30),
                   weight_loss = c(runif(30, 0, 3),
                                   runif(30, 0, 5),
                                   runif(30, 1, 7)))

#fit ANOVA model
model <- aov(weight_loss ~ program, data = data)

#summarize model fit
summary(model)

            Df Sum Sq Mean Sq F value   Pr(>F)    
program      2  98.93   49.46   30.83 7.55e-11 ***
Residuals   87 139.57    1.60                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Related: 

The following tutorials offer more information on calculating summary statistics in R:

x