2016-09-28 22 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

ファンクションにはtrimパラメータがあり、デフォルトは0です。したがって、mean(sample)を使用すると、トリムされていない平均値が得られます。

あなたの関数を分析すると、いくつかのcsvを読み込み、その平均を計算しています。次に、この値をベクトルに格納し、最後にこれらの平均値を計算します。

これらの要素の数がすべて同じでない限り、この値はすべてのCSVの平均値ではありません。です。たとえば、{1,2,3,4,5}の平均は3ですが、これを{1,2}と{3,4,5}の2つのグループに分けた場合、その平均は1.5と4です。平均{1.5,4}は2.75(3ではない)である。

+0

答えがありがとうございました!... –

関連する問題