如何计算r中多列的平均值


通常,您可能想计算 R 中多列的平均值。幸运的是,您可以使用colMeans()函数轻松完成此操作。

 colMeans(df)

以下示例展示了如何在实践中使用此功能。

使用 colMeans() 求多列的平均值

以下代码演示如何使用colMeans()函数查找数据框中每列的平均值:

 #create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 6, 8),
                 var4=c(1, 1, 2, 8, 9))

#find mean of each column
colMeans(df)

var1 var2 var3 var4 
 3.2 5.4 5.2 4.2 

我们还可以指定要查找哪些列的平均值:

 #find the mean of columns 2 and 3
colMeans(df[, c(2, 3)])

var2 var3 
 5.4 5.2 

#find the mean of the first three columns
colMeans(df[, 1:3])

var1 var2 var3 
 3.2 5.4 5.2

如果有非数字列,可以使用sapply()指定只想求数字列的平均值:

 #create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 6, 8),
                 var4=c(1, 1, 2, 8, 9),
                 var5=c('a', 'a', 'b', 'b', 'c'))

#find mean of only numeric columns
colMeans(df[ sapply (df, is.numeric)])

var1 var2 var3 var4 
 3.2 5.4 5.2 4.2

并且如果任何列中存在缺失值,则可以在计算平均值时使用na.rm=TRUE参数忽略缺失值:

 #create data frame with some missing values
df <- data.frame(var1=c(1, 3, NA, NA, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 6, 8),
                 var4=c(1, 1, 2, 8, NA))

#find mean of each column and ignore missing values
colMeans(df, na.rm= TRUE )

var1 var2 var3 var4 
 3.0 5.4 5.2 3.0

其他资源

如何在 R 中迭代列名
如何对 R 中的特定列求和

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注