【问题标题】:Using conditional selection to create a subset of data使用条件选择创建数据子集
【发布时间】:2018-07-26 18:22:49
【问题描述】:

我有一个名为dietox 的数据集,其中包含Feed 变量的缺失值(NA)。我需要使用条件选择来创建一个数据子集,其中缺失值的行将被删除。

我试过的代码是:

dietox[!is.NA[dietox$Feed, ] 

...但不确定创建子集是否正确。

dput(head(dietox)) 

dietox <- structure(list(Weight = c(26.5, 27.59999, 36.5, 40.29999, 49.09998, 
             55.39999), Feed = c(NA, 5.200005, 17.6, 28.5, 45.200001, 56.900002 ),
             Time = 1:6, Pig = c(4601L, 4601L, 4601L, 4601L, 4601L, 4601L ),
             Evit = c(1L, 1L, 1L, 1L, 1L, 1L), Cu = c(1L, 1L, 1L, 1L, 1L, 1L),
             Litter = c(1L, 1L, 1L, 1L, 1L, 1L)),
            .Names = c("Weight", "Feed", "Time", "Pig", "Evit", "Cu", "Litter"),
            row.names = c(NA, 6L), class = "data.frame")

【问题讨论】:

  • 使用dput 函数是最好的方法。要仅获取数据的子集,请使用 head 函数。前任。 dput(head(dietox))。你可以阅读更多关于好的例子here
  • 请查看这篇文章以了解如何通过可重复的示例 (stackoverflow.com/questions/5963269/…) 提出问题。您不必提供整个数据框。代表真实数据关键特征的数据框子集就足够了。
  • 一方面,您拼错了is.na。可以说这是一个错字,但答案展示了核心 R 范式,而且问题似乎措辞得当。
  • @Gracie5​​23。您现在应该使用edit-ing 功能删除应该在问题正文中发布的两个 cmets。

标签: r indexing subset logical-operators


【解决方案1】:

您的想法是正确的,但is.na 是一个函数,因此需要与括号一起使用。

dietox[!is.na(dietox$Feed), ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 2018-10-20
    • 1970-01-01
    • 2021-12-05
    • 2016-11-19
    • 1970-01-01
    • 2017-11-27
    相关资源
    最近更新 更多