| (或)命令不适用于子集命令

时间:2019-04-20 21:07:42

标签: r

我正在尝试根据个人的受教育年限对给定的数据集进行子集化。特别是,我想为只有15年或16年教育的个人制作一个较小的数据集。

但是,当我尝试通过命令|包括两个可能的值,它给了我整个样本。如果我将数据子集分配给只有15年或16年教育的个人,则情况并非如此,因为它似乎在这里可以正常工作。但是,当我同时将两者都包括在内时,情况并非如此。

我使用的代码行就是这个


dataset_final <- subset(dataset_trade , Q119 == 15 | 16 )

您知道什么可能导致问题吗?

2 个答案:

答案 0 :(得分:3)

由于您提出以下要求,因此您需要更正逻辑表达式:

Q119 == 15    OR    16

16是非零值,所以是真的

所以你问Q119 == 15 OR TRUE

这将返回整个集合,因为所有内容(零值除外)均为TRUE

尝试:

dataset_final <- subset(dataset_trade , Q119 == 15 | Q119 == 16 )

答案 1 :(得分:3)

这是一种完全避免|的方法。

dataset_final <- subset(dataset_trade, Q119 %in% c(15, 16))

随着可能值数量的增加,这变得越来越容易。