2013-01-22 6 views
10

私は3つの変数でデータフレーム "キラー"を作成しました。データ全体には数値がありますが、数値はNAです。メジアンを計算するとき、na.rm = TRUEをsapplyに渡す方法は?

私の目標は、3つの変数のそれぞれの平均を計算することです。

sapply(killers, function(x) median) 

これが返されます。

$heartattack 
function (x, na.rm = FALSE) 
UseMethod("median") 
<bytecode: 0x103748108> 
<environment: namespace:stats> 

私はna.rm引数はNA値を無視するための手段であることを知っています。 Rによって返されたものにna.rm = FALSEが存在するので、これを上のコード行の中でTRUEに設定する方法があると推測します。私はいくつかのバリエーションを試してみました:

sapply(killers, na.rm=TRUE function(x) median) 
sapply(killers, function(x) median, na.rm=TRUE) 
sapply(killers, function(x) median(na.rm=TRUE)) 

私は近いんですか、これはネスティング機能に関与しようとしている場合かどうかわからないんだけど、(私が見ることができることを、このインスタンスでは、最終的に有用ではないが)他の類似のとおりSOのトピックに関する投稿。例えばもちろん How to pass na.rm as argument to tapply?Ignore NA's in sapply function

、私は殺人を作成するために使用された各ベクトルに平均値を計算することができますが、確かに私が求めていることは可能であるならば、それは良いです。

+3

(あなたのコードに基づいて)だろうsapply'は "...: 'FUN' に、オプションの引数は" と述べています。 * Examples *セクションの関数に追加の引数を渡す方法の例があります。 –

+0

@JoshuaUlrichは攻撃的ではありません。 –

+2

あなたは 'sapply'に関数' median'を返すように頼みました。関数はオブジェクトです。 (あなたがしなかったのは 'median(x) 'を返すように言ったことです)。 –

答えて

27

ちょうどん?

sapply(killers, median, na.rm = TRUE) 

代わりに `

sapply(killers, function(x) median(x, na.rm=TRUE)) 
関連する問題