R:根据R中大型数据集中列中的值删除行

dea*_*ool 3 r data-cleaning

我正在 R 中研究 104500 个观察值的数据集。我想根据具有值“TX”和“NY”的列名“state”删除行。

我正在使用以下代码

customers <- customers[customers$State != "TX"]
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

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

任何人都可以帮我解决这个问题吗?

小智 6

我想你最后错过了一个逗号。

customers <- customers[customers$State != "TX", ]
                                              ^
Run Code Online (Sandbox Code Playgroud)

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

HTH

下次请提供一个可重现的例子。


leb*_*noz 5

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

以下是我在数据集中dplyr过滤掉德克萨斯州纽约州的方法:

library(dplyr)
customers = filter(customers, State != "TX" & State != "NY")
Run Code Online (Sandbox Code Playgroud)

或者,

customers = filter(customers, !(State %in% c("TX", "NY")))
Run Code Online (Sandbox Code Playgroud)