R:基于列中的值从大型数据集中删除行

9

我正在处理包含104500条数据的R数据集。我想根据列名为“state”的值删除行,这些值为“TX”和“NY”。

我正在使用以下代码:

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

我遇到了以下错误

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

请问有人能帮我解决这个问题吗?

2个回答

10

我认为您漏了一个逗号在结尾处。

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

所以根据您的筛选条件选择行,且选择所有列。

希望有所帮助。

下次请提供可复现的示例。


5

我建议您学习如何使用dplyrtidyverse中的其他软件包。在数据清理方面,我发现它们是不可或缺的工具。

以下是我如何使用dplyr筛选出数据集中的德克萨斯州和纽约州:

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

或者,

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接