-1

データの列でサブセットを定義しようとしています (実際には、いくつかの異なる範囲でサブセットを作成したいと考えています)。

私はから始めています:

subset <- x[(x$y >= "J8500" & x$y < "J8900"), ]

ただし、これはすべてを除外します。観測値が 0 のままです。

subset <- x[x$y >= "J8500", ] 

Ja で始まり8500 未満の変数はすべて除外されますが、他の文字で始まる変数もいくつか含まれます。そのコマンドでは、J で始まる変数のみが必要です。

最終的には、次のようなことをしたいと思います。

subset <- x[(x$y >= "J8500" & x$y < "J8900") | (x$y >= "96400" & x$y <"96599") | (x$y >= "Q0083" & x$y < "Q0085"), ]

コーディングのバックグラウンドはあまりありませんが、それが理にかなっていることを願っています。

4

2 に答える 2

1

substr()部分文字列の抽出に使用できます。したがって、「J」で始まるエントリのみが必要な場合は、次のようなものを使用できます。

yy <- c("KK","JK","KJ")
substr(yy,1,1)=="J"

その後、 を使用して文字列を分割しsubstr()、2 番目の部分を を使用して文字列から数値変数に変換して、数値as.numeric()として比較できるようにする必要がある場合があります。

于 2012-11-16T10:56:14.103 に答える
0

x$y要因ですか?もしそうなら、それがエラーの原因である可能性があります。

y を数値に変換してみてください

 x$y <- as.character(x$y) 

または x$y への呼び出しを as.character() でラップします

subset <- x[as.character(x$y) >= "J8500" & as.character(x$y) < "J8900", ]
于 2012-11-16T20:29:33.533 に答える