0

のマトリックスがあります

mat<-read.csv("mat.csv")
sel<-c(135, 211)

「sel」に対応する「mat」の行を選択したい

私は次の方法でそれを行います:

subset(mat, mat$V2==c(sel))

次のエラーが表示されます。

Warning message:
In l[, 2] == c(135, 211) :
  longer object length is not a multiple of shorter object length

また、2 つのうちの 1 つだけを選択します。

4

1 に答える 1

1

これを試してください(クレジットはRolandに送られます)

mat[mat$V2 %in% sel,]
    X V1  V2 V3 V4  V5 V6 V7 V8 V9 V10
11 11  1 135  2  7 100  2  0  0  0   0
15 15  1 211  5  7 100  2  0  0  0   0

あなたから?'%in%読むことができます:

    %in% is a more intuitive interface as a binary operator, which returns
a logical vector indicating if there is a match or not for its left operand.

一致を示す論理ベクトルがある場合は、それを使用して、必要な要素のインデックス付けと選択を行うことができます。この場合、その中mat$V2 %in% selのすべての要素に一致すると、論理ベクトルが得られ、それを使用すると、次のように目的の要素のみが取得されます:条件に一致する要素の行のすべての列を指定します。mat$V2selmat[row, col]mat[mat$V2 %in% sel,]mat$V2 %in% sel

于 2012-12-13T10:35:34.387 に答える