R:从R中的大型数据集中根据列中的值删除行[重复]

Posted

技术标签:

【中文标题】R:从R中的大型数据集中根据列中的值删除行[重复]【英文标题】:R: Deleting rows based on a value in a column from a large data set in R [duplicate] 【发布时间】:2018-03-16 09:36:21 【问题描述】:

我在 R 中处理 104500 个观察的数据集。我想删除基于列名“state”的行,该列名称为“TX”和“NY”。

我正在使用以下代码

customers <- customers[customers$State != "TX"]

我收到以下错误

错误:逻辑索引向量的长度必须是 1 或 11(行数),而不是 104541

谁能帮我解决这个问题?

【问题讨论】:

【参考方案1】:

我想你在最后漏掉了一个逗号。

customers <- customers[customers$State != "TX", ]
                                              ^

因此,您可以根据过滤器选择行和所有列。

HTH

请在下次提供可重现的示例。

【讨论】:

【参考方案2】:

我建议你学习如何使用dplyr,以及tidyverse 中的其他包。我发现它们是清理数据不可或缺的工具。

以下是我将如何使用dplyr 在您的数据集中过滤掉德克萨斯纽约:

library(dplyr)
customers = filter(customers, State != "TX" & State != "NY")

或者,

customers = filter(customers, !(State %in% c("TX", "NY")))

【讨论】:

以上是关于R:从R中的大型数据集中根据列中的值删除行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

基于R中大型数据集中没有足够的重复数据删除行

根据R中的值删除行[重复]

R中的条件数据框突变与magrittr和dplyr

什么函数允许我根据R中列中的值从数据框中的列中提取数据?

通过匹配连续列中的值过滤 R 数据帧行

去掉 从R中的列中的值[重复]