如何在r中找到所有数字列的平均值,其中一个非数字列?

时间:2017-10-19 01:46:17

标签: r csv

我在从csv导出的R中有数据。第一列包含日期,其他20列包含20个不同国家/地区的汇率。我如何找到每个国家的汇率平均值?我使用sapply作为数据但是没有作为第一列,日期不是数字。

然后,我尝试使用ExRate$date<-NULL删除日期列,然后使用sapply(ExRate,mean)。我得到了与上面相同的错误。

请指导我如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

我们可以使用summarise_if

library(dplyr)
ExRate %>%
       summarise_if(is.numeric, mean)

作为可重复的例子

data(iris)
iris %>%
    summarise_if(is.numeric, mean)
#    Sepal.Length Sepal.Width Petal.Length Petal.Width
#1     5.843333    3.057333        3.758    1.199333

答案 1 :(得分:3)

我认为您可以只关注第一个日期列:

ex_means <- sapply(ExRate[, 2:21], mean)

如果您不确定日期列的位置是什么,那么您也可以将上述内容称为使用之外的所有列作为日期列:

ex_means <- sapply(ExRate[, -which(names(ExRate) == "date")])