【问题标题】:| (or) command not working with subset command [duplicate]| (或)命令不适用于子集命令[重复]
【发布时间】:2019-09-10 15:55:12
【问题描述】:

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

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

我使用的代码行是这一行


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

知道可能导致问题的原因吗?

【问题讨论】:

  • 请考虑为您的问题使用verifiable example(最低限度、完整且可验证的示例)。查看 this page 以获取有关 R 特定 MCVE 的提示。即使在小任务上也有帮助。您可以使用 mtcars 之类的示例数据框,它们已经内置。

标签: r


【解决方案1】:

你需要更正你的逻辑表达,因为你问:

Q119 == 15    OR    16

16 是一个非零值,所以它是真的

所以你问Q119 == 15 OR TRUE

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

试试:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-06-17
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 2016-10-07
      • 1970-01-01
      相关资源
      最近更新 更多