24

次のベクトルがあるとします。

x <- c(8, 6, 9, 9, 7, 3, 2, 5, 5, 1, 6, 8, 5, 2, 9, 3, 5, 10, 8, 2)

どの要素が 8 または 9 であるかを調べるにはどうすればよいですか?

4

6 に答える 6

40

これは 1 つの方法です。最初に、x が 8 または 9 であるインデックスを取得します。次に、これらのインデックスで x が実際に 8 および 9 であることを確認できます。

> inds <- which(x %in% c(8,9))
> inds
[1]  1  3  4 12 15 19
> x[inds]
[1] 8 9 9 8 9 8
于 2009-07-23T03:13:38.963 に答える
11

|短い条件で演算子を試すことができます

which(x == 8 | x == 9)
于 2009-07-23T13:10:53.620 に答える
-1

grepl多分便利な機能。greplR2.9.0以降のバージョンで表示されることに注意してください。便利なのgreplは、と同じ長さの論理ベクトルを返すことxです。

grepl(8, x)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[13] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE

grepl(9, x)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
[13] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE

あなたの答えに到達するために、あなたは次のことをすることができます

grepl(8,x) | grepl(9,x)
于 2009-07-26T18:26:30.800 に答える