我是初学者。我正在使用MASS包中的波士顿数据集。我想应用一个过滤器来获取变量“chas”的值为1 / TRUE且变量“age”的值大于50.0的记录
我试过了:
> boston2<-subset(Boston, chas>0, age>50.0)
> boston2
我得到的结果是: 0列和35行的数据框
但是,我希望所有记录中chas为true且数据框中的age大于50。
我可以使用哪些替代方法?如何将过滤扩展到3/4 /任意数量的变量。
答案 0 :(得分:1)
您需要使用各种逻辑运算符连接不同的标准:
subset(Boston, chas > 0 & age > 50.0)
阅读?Logic
了解详情。
subset
的文档指定第二个参数subset
必须是单个逻辑表达式。当您用逗号分隔它们时,R将它们解释为完全不同的参数,而不是单个表达式。
您的尝试相当于:
subset(Boston, subset = chas > 0, select = age > 50.0)
所以你得到“所有行但没有列”。