如何在R中使用过滤函数删除行?

3

我的数据集,card.usage 如下所示:

> head(card.usage)
     dateYmd WithdrawMoney DepositMoney         title     extra
1 2016-08-18         10000            0       국민조*기   인터넷
2 2016-08-17          7300            0 롯데쇼핑(주)롯 체크우리
3 2016-08-17          2500            0   메가박스(주) 체크우리
4 2016-08-17             0        20000             조**   모바일
5 2016-08-17          4200            0 서울모스 체크우리
6 2016-08-14          2400            0 (주)코리아세븐 체크우리

我想使用 Filter 函数来移除 depositMoney 列中值为 0 的行,以修复这个需要被处理的数据集。尝试运行以下代码:

card.usage.filtered = Filter( function(x) {  x$DepositMoney = 0}, card.usage)

我想要做的是删除列“DepositMoney”不为0的行。但是如果我像上面那样使用过滤函数,就会失去所有行。我知道高阶函数的参数是一个向量。如何访问特定的列?我找不到相关的例子。

我认为你需要使用dplyr中的subsetfilter函数,例如subset(card.usage, DepositMoney ==0) - akrun
@akrun 这些与上面的过滤函数不同吗? - verystrongjoe
使用 Filter,您可以对列进行子集筛选。 - akrun
2个回答

4
我们可以使用base R中的subset
card.usage.filtered <-  subset(card.usage, DepositMoney ==0) 

或者使用来自 dplyrfilter

library(dplyr)
card.usage %>%
         filter(DepositMoney == 0)

0

您可以简单地使用此基本-r功能。

card.usage.filtered <- card.usage[card.usage$DepositMoney==0,]

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