での最小値と最大値を除いたデータフレーム内の行の値から平均値、DF、(フラグメントがここに表示):私は、データフレームを次しまっR
H2475 H2481 H2669 H2843 H2872 H2873 H2881 H2909
E1 94.470 26.481 15.120 18.490 16.189 11.422 14.886 0.512
E2 1.016 0.363 0.509 1.190 1.855 0.958 0.771 0.815
E3 9.671 0.637 0.571 0.447 0.116 0.452 0.403 0.003
E4 3.448 2.826 2.183 2.607 4.288 2.526 2.820 3.523
E5 2.548 1.916 1.126 1.553 1.089 1.228 0.887 1.065
私が何をしたいのかは、それぞれの平均値を計算することです2つの極値を取り除いた後に私はplyrを使用し、全行については :
library(plyr)
df.my_means <- adply(df, 1, transform, my_means = mean(as.matrix(df[i,])))
分とNASに置き換え、最大値を持ついくつかの一時的なデータフレーム/マトリックスを作成することもOKにする必要がありますが、初心者として、私はそれを行うことができないのです。あなたの助けのための
どうもありがとう
EDIT 1
私はがトリムオプションを持っている意味することを明らかに知りませんでした。私は代わりにの代わりにを意味する解決策を持っていたいと思います。すなわち:
library(plyr)
library(e1071)
df.my_means <- adply(df, 1, transform, my_skew = skewness(as.matrix(df[i,]), , 3))
私は、これは質問の投稿ルールを破った場合に謝罪が、その後中央値など、平均値用に別の質問を有する反直観的です。
EDIT 2 plyrなしの部分的な解決策:
df.my_means <- apply(df ,1, function(x){y=x[order(x)]; (y[2:(length(y)-1)])})
これは、列の値との間の接続を破ります。
あなたが最小値/最大値の複数の出現箇所を持っている場合、あなたはまた、それらを削除したいですか? – themel
行の平均を計算する場合は、おそらく行列を使用するか、データフレームを転置する必要があります。 –
@themel:良い点。元のデータは、複数のゼロを含む可能性が高い行からすでにフィルタリングされていますが、ca 10k行と30列で発生する可能性があります。私は行からちょうど1つの最大値と1つの最大値を取り除くことにとどまります。 – darked89