2016-09-28 45 views
0

我使用的是基本包中的mean(),並且想要計算即使在將trim = 0後也未評估的未修改平均值。在這點我是執行上面的代碼是: -在R中評估未修剪的平均值

pollutantmean <- function(directory,pollutant,id = 1:332){ 
    m = vector("numeric") 
    for(i in id){ 
      #paste() is used to concatenate r strings. 
      if(i < 10){ 
        table <- read.csv(paste(directory ,"/","00",i,".csv",sep = "")) 
      } 
      else if(i>=10 && i<=99){ 
        table <- read.csv(paste(directory ,"/","0",i,".csv",sep = "")) 
      } 
      else{ 
        table <- read.csv(paste(directory ,"/",i,".csv",sep = "")) 
      } 
      table <- table[,pollutant] 
      m <- c(m,mean(table,na.rm = TRUE)) 
      print(m) 
    } 
    mean(m) 

}

請幫我修剪是不是意味着我可以很容易地寫我自己的功能,但我真的喜歡,如果有一個調整或其他功能爲此。提前致謝!...

回答

3

mean()函數具有trim參數,其默認值爲0.所以使用mean(sample)會給你未修剪的意思。

分析你的功能,你正在讀幾個csv,計算它們的平均值。然後你將這個值存儲在一個向量中,最後你計算這些方法的平均值。

該值不是所有csv在一起的平均值,除非它們都具有相同數量的元素。例如,{1,2,3,4,5}的平均值爲3,但如果將其分成兩組:{1,2}和{3,4,5},則其平均值爲1.5和4.平均值的{1.5,4}是2.75(不是3)。

+0

感謝您的答案得到了重點!... –