回答:
これは、as.data.frame()を使用してマトリックスをデータフレームに変換すると、より簡単になります。その場合、以前の回答(サブセットまたはm $ threeを使用)は機能しますが、それ以外の場合は機能しません。
マトリックスで操作を実行するには、名前で列を定義できます。
m[m[, "three"] == 11,]
または番号で:
m[m[,3] == 11,]
1行のみが一致する場合、結果は行列ではなく整数ベクトルになることに注意してください。
m[m[,3] == 11,,drop=FALSE]
df <- df[!which(df$ARID3A:df$YY1 == "U"),]、ここでは、列の範囲(ARID3A:YY1)に値Uが含まれているdfからこれらの行を削除します。
サブセットは非常に遅い関数で、個人的には役に立たないと思います。
私はあなたがdata.frame、配列と呼ばれる行列持っていると仮定MatしてA、B、C列名などを; その後、あなたがする必要があるのは:
1つの列に1つの条件がある場合、列Aとしましょう
Mat[which(Mat[,'A'] == 10), ]異なる列に複数の条件がある場合は、ダミー変数を作成できます。仮定条件はA = 10、B = 5とC > 2我々は持っています:
aux = which(Mat[,'A'] == 10)
aux = aux[which(Mat[aux,'B'] == 5)]
aux = aux[which(Mat[aux,'C'] > 2)]
Mat[aux, ]
で速度の利点をテストすることによりsystem.time、このwhich方法は方法よりも10倍高速になりsubsetます。
[ ]答えの間でコードを実行すると、これがよりはっきりとわかります。