2014-02-19 57 views
1

我是初學者。我正在使用MASS軟件包中的波士頓數據集。我想申請一個過濾器,以獲得記錄,其中變量「乍」的值是1/TRUE和變量「年齡」的值大於50.0波士頓數據集,基於值的多個過濾器

我想:

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

我得到的結果是: 有0列和35行的數據幀

但是,我希望所有記錄的chas爲真,並且數據幀中的年齡大於50。

我可以使用哪些替代方法?我怎樣才能將過濾擴展到3/4 /任意數量的變量。

回答

1

您需要使用不同的邏輯運算符來連接不同的標準:

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

閱讀?Logic瞭解更多信息。

subset的文檔指定第二個參數subset必須是單個邏輯表達式。當你用逗號分隔它們時,R將它們解釋爲完全不同的參數,而不是單個表達式。

你嘗試等同於:

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

等你拿「的所有行,但沒有列」。

+0

明白了。我將研究所有在函數內使用的邏輯運算符。謝謝!我還看到,子集化可能不是最好的方法,並且使用[或者[更好的主意,特別是在編寫程序時。有沒有其他方法可以用來解決這個問題? – vagabond