1

我是初学者。我正在使用 MASS 包中的波士顿数据集。我想应用过滤器来获取变量“chas”的值为 1 / TRUE 且变量“age”的值大于 50.0 的记录

我试过 :

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

我得到的结果是:0列35行的数据框

但是,我想要数据框中所有 chas 为真且年龄大于 50 的记录。

我可以使用哪些替代方法?以及如何将过滤扩展到 3 / 4 / 任意数量的变量。

4

1 回答 1

1

您需要使用各种逻辑运算符连接您的不同标准:

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

阅读?Logic以了解更多信息。

的文档subset指定第二个参数 ,subset必须是单个逻辑表达式。当您用逗号分隔它们时,R 将它们解释为完全不同的参数,而不是单个表达式。

您的尝试相当于:

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

所以你得到“所有行但没有列”。

于 2014-02-19T15:45:18.787 回答