如何在R中使用summary()函数(附实例)

3,584 阅读1分钟

R中的summary()函数可以用来快速总结R中的向量、数据框架、回归模型或方差分析模型中的数值。

这个语法使用以下基本语法:

summary(data)

下面的例子展示了如何在实践中使用这个函数。

例1:在向量中使用summary()

下面的代码展示了如何使用**summary()**函数来总结一个向量中的数值:

#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 

summary()函数会自动计算向量的以下汇总统计数据:

  • 最小值,最小值
  • 1st Qu:第1个四分位数(第25个百分位数)的值
  • 中位数。中位值
  • 第3个四分位数。第3个四分位数(第75个百分点)的值
  • Max: 最大值

注意,如果向量中存在任何缺失值(NA),summary()函数在计算汇总统计时将自动排除它们。

#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

例2:在数据框架中使用summary()函数

下面的代码显示了如何使用**summary()**函数来汇总数据框架中的每一列:

#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 

例3:在特定的数据框架列中使用summary()

下面的代码显示了如何使用summary()函数来总结数据框架中的特定列:

#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 

例4:在回归模型中使用summary()函数

下面的代码显示了如何使用**summary()**函数来总结一个线性回归模型的结果:

#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

相关的:如何解释R中的回归输出

例5:在方差分析模型中使用summary()

下面的代码显示了如何使用**summary()**函数来总结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

相关:如何解释R中的方差分析结果

其他资源

下面的教程提供了更多关于在R中计算汇总统计的信息:

如何在R中计算五数汇总
在R中创建汇总表的最简单方法
如何在R中创建相对频率表