R:如何自动计算数据集所有变量的平均值?

时间:2015-04-27 15:54:58

标签: r

我通过以下方式阅读了csv文件:

data = read.csv("airbnb.csv",header=T,sep=",")

数据有100多个变量,我需要计算所有变量的平均值。实际上我需要自动执行以下操作:

mean(data$variable1)
mean(data$variable2)

...

有什么好方法可以做到这一点吗?例如。有一个循环?

1 个答案:

答案 0 :(得分:2)

您可以使用apply()或在评论中提到的@akrun colMeans()。后者针对这种情况进行了优化,因此对于大型数据集,它可能比前者表现更好。

您提到您有多种类型的数据,并且您只想选择数字列。这很简单,你只需要预先识别数字列。这可以使用sapply()is.numeric()进行。

# Select numeric columns
data.numcols <- data[, sapply(data, is.numeric)]

# Using apply
all.means <- apply(data.numcols, 2, mean)

# Using colMeans
all.means <- colMeans(data.numcols)

如果您的列包含NA,则可以排除NA值,如下所示:

# Using apply
all.means <- apply(data.numcols, 2, function(x) mean(x, na.rm = TRUE))

# Using colMeans
all.means <- colMeans(data.numcols, na.rm = TRUE)