data.frame - 在 R 中,计算矩阵的每一列的平均值

我正在R studio中工作,我需要计算数据框架每一列的平均值。


 cluster1 // 5 by 4 data frame
 mean(cluster1) // 

我知道了


 Warning message:
 In mean.default(cluster1) :
 argument is not numeric or logical: returning NA

但我可以用


 mean(cluster1[[1]])

获取第一列的平均值。

如何获取所有列?

任何帮助将不胜感激。

时间:

你可以使用colMeans


### Sample data
set.seed(1)
m <- data.frame(matrix(sample(100, 20, replace = TRUE), ncol = 4))

### Your error
mean(m)
# [1] NA
# Warning message:
# In mean.default(m) : argument is not numeric or logical: returning NA

### The result using `colMeans`
colMeans(m)
# X1 X2 X3 X4 
# 47.0 64.4 44.8 67.8 

可以使用"apply"来运行函数或矩阵或数值数据框架的行或列:


cluster1 <- data.frame(a=1:5, b=11:15, c=21:25, d=31:35)

apply(cluster1,2,mean) # applies function 'mean' to 2nd dimension (columns)

apply(cluster1,1,mean) # applies function to 1st dimension (rows)

sapply(cluster1, mean) # also takes mean of columns, treating data frame like list of vectors

...