1

私は初心者です。私は MASS パッケージのボストンのデータセットを扱っていました。フィルターを適用して、変数「chas」の値が 1 / TRUE で、変数「age」の値が 50.0 より大きいレコードを取得したかった

私は試した :

> boston2<-subset(Boston, chas>0, age>50.0)
> boston2

私が得た結果は次のとおりです。0列と35行のデータフレーム

ただし、chas が true で age が 50 より大きいデータ フレームのすべてのレコードが必要でした。

使用できる代替方法は何ですか? また、フィルタリングを 3 / 4 / 任意の数の変数に拡張するにはどうすればよいですか。

4

1 に答える 1

1

さまざまな論理演算子を使用して、さまざまな基準を接続する必要があります。

subset(Boston, chas > 0 & age > 50.0)

詳細?Logicについては、こちらをご覧ください。

のドキュメントでsubsetは、2 番目の引数subsetが単一の論理式である必要があると指定されています。これらをコンマで区切ると、R はそれらを単一の式としてではなく、まったく異なる引数として解釈します。

あなたの試みは以下と同等です:

subset(Boston, subset = chas > 0, select = age > 50.0)

したがって、「すべての行が列なし」になります。

于 2014-02-19T15:45:18.787 に答える