web-dev-qa-db-ja.com

中央値を計算するときにsapplyにna.rm = TRUEを渡す方法は?

3つの変数を持つデータフレーム「キラー」を作成しました。全体にNA値が存在しますが、データは数値です。

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

sapply(killers, function(x) median)

これは次を返します:

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

私はna.rm引数は、NA値を無視する手段です。 na.rm = FALSEはRによって返されたものに存在し、上記のコード行内でこれを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に関するトピックに関する他の同様の(この場合は最終的には役に立ちませんが)投稿のように、私が近くにいるのか、これに入れ子関数が含まれるのかはわかりません。例えば na.rmをtapplyの引数として渡す方法は?sapply関数のNAを無視する

もちろん、キラーを作成するために使用された各ベクトルの平均を計算することもできますが、私が求めていることが可能であれば、それは確かに優れています。

14
Doug Fir

ただしてください:

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

別の方法は(コードに基づいて)

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