微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何根据值是否超过 Rstudio 中特定列中的给定数字来删除数据集中的行

如何解决如何根据值是否超过 Rstudio 中特定列中的给定数字来删除数据集中的行

我正在尝试从我的数据集中删除一些异常值。我一次一个地调查数据中的每个变量。我已经为变量构建了箱线图,但不想删除所有分类的异常值,只删除最极端的。因此,我注意到箱线图上的值我不希望我的变量超过,并试图删除与具有超过所选值的特定列值的观察值相对应的行。

例如, 我的数据集称为牛奶,其中一个变量称为 alpha_s1_casein。我认为以下内容删除数据集中 alpha_s1_casein 的值大于 29 的所有行:

milk <- milk[milk$alpha_s1_casein < 29,]

事实上确实如此。数据框中的行数从 430 减少到 428。但是它在我的数据集中不涉及的列中引入了很多 NA 值

在我运行上面的代码之前,NA 的数量

sum(is.na(milk))

5909 NA 值 但是在执行上述操作后,现在返回的 NA 的总和是

sum(is.na(milk))

75912 NA 值。

我不明白这里出了什么问题,我不明白为什么我在做的事情是引入比开始时更多的 NA 值,而我所做的只是在列值超过某个数字时删除观察值。

有人可以帮忙吗?我绝望了

解决方法

在不使用其他包的情况下,要删除数据集中 alpha_s1_casein 的值大于 29 的所有行,您可以这样做:

milk <- milk[-which(milk$alpha_s1_casein > 29),]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。