0

私はRの初心者で、203行19列のpedMというデータフレームがあり、データフレームでほとんど値0を返す列を削除する行をコーディングしたいと思いました(たとえば、列の98%は0)。

データフレームを使用して、遺伝子発現に基づいて画像を返すヒートマップを出力しています。データに実際には寄与していない外れ値を持つ行を削除したいと思います。

私が探しているコード行はかなり単純だと思いますが、正しい方法で頭を包むことはできません。繰り返しになりますが、98%の0または2%の非ゼロのいずれか簡単な方法でデータフレームから列を基本的に削除する行を探します。

前もって感謝します。

ヴィヴェック

4

1 に答える 1

3

わかりやすくするために、これをいくつかの手順で実行するのが好きです。最初に、ベクトルの98%のゼロをチェックし、TrueまたはFalseを返す関数を定義します。

myfun <- function(x, threshhold=0.98) {
  if(length(x[x==0])/length(x) > threshhold) {
    TRUE
  } else {
    FALSE
  }
}

次に、以下を使用して各列のブールベクトルを作成しますapply

to.drop <- apply(pedM, 2, myfun)

最後に、不要な列を削除します。

pedM <- pedM[, !to.drop]
于 2012-07-25T17:50:58.637 に答える