2017-10-19 66 views
0

我有从csv导出的R中的数据。第一列包含日期,另外20列包含20个不同国家的汇率。我如何找到每个国家的汇率平均值?我使用了sapply作为数据,但没有起作用,因为第一列,日期不是数字。如何查找r中所有数字列的均值,并使用一个非数字列?

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

请指导我如何去做这件事?

+1

[R For循环列均值]的可能的复制(https://stackoverflow.com/questions/40596947/r-for-loops-column-means) –

回答

3

我想你可以只子集断第一日期列:

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

如果您不确定的日期列的位置是什么,那么你也可以词组上面使用的所有列除了对于日期列:

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

' sapply(ExRate [,-1],mean)'在第一个例子中可能会更简单。 – thelatemail

3

我们可以使用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 
相关问题