R 基于列条件从数据框中大规模删除行
我想根据列的条件删除所有行。下面的代码生成一个示例测试数据R 基于列条件从数据框中大规模删除行,r,R,我想根据列的条件删除所有行。下面的代码生成一个示例测试数据 test\u data我们可以使用ave和subset在基数R中,选择没有值的组,其中count为1 subset(test_data, ave(count != 1, group, FUN = all)) # index group count #4 4 b 3 #5 5 c 4 使用dplyr可以通过以下方式完成: library(dplyr) test_data %>%
test\u data我们可以使用ave
和subset
在基数R中,选择没有值的组,其中count
为1
subset(test_data, ave(count != 1, group, FUN = all))
# index group count
#4 4 b 3
#5 5 c 4
使用dplyr
可以通过以下方式完成:
library(dplyr)
test_data %>% group_by(group) %>% filter(all(count != 1))
和data.表
library(data.table)
setDT(test_data)[, .SD[all(count != 1)], group]
我们可以在基数R中使用ave
和subset
,并在count
为1的位置选择没有值的组
subset(test_data, ave(count != 1, group, FUN = all))
# index group count
#4 4 b 3
#5 5 c 4
使用dplyr
可以通过以下方式完成:
library(dplyr)
test_data %>% group_by(group) %>% filter(all(count != 1))
和data.表
library(data.table)
setDT(test_data)[, .SD[all(count != 1)], group]
您好,您可以使用subset
获得结果testdata2感谢@Tushar..但是有很多类似的组。我刚刚展示了一个示例数据。因此,我不必只删除一个组(在本例中为“a”),而是删除与计数1关联的任何组的所有行。我无法硬编码一个组,因为有许多组具有此条件。另外,我必须设置一个条件,如果test$count=1,则删除属于同一组的所有行。您好,您可以使用subset
获得结果testdata2,谢谢@Tushar..但是有很多这样的组。我刚刚展示了一个示例数据。因此,我不必只删除一个组(在本例中为“a”),而是删除与计数1关联的任何组的所有行。我无法硬编码一个组,因为有许多组具有此条件。另外,我必须设置一个条件,如果test$count=1,则删除属于同一组的所有行。谢谢@Ronak,但是上面的代码会只删除count=1的行吗?我还想删除掉在同一组,但可以有任何计数。例如,如果第一行的count=1,则删除第一行,但也删除第二行和第三行,因为它们与第一行属于同一组。@Stats No这将删除该组的所有行,即使在count=1
中有1个值。例如,参见测试数据
和组
“a”,它删除了所有3行,而不仅仅是第一行。你试过答案了吗?它给出了与testdata2
中所示相同的预期输出。谢谢@Ronak,但是上面的代码是否只删除那些count=1的行?我还想删除掉在同一组,但可以有任何计数。例如,如果第一行的count=1,则删除第一行,但也删除第二行和第三行,因为它们与第一行属于同一组。@Stats No这将删除该组的所有行,即使在count=1
中有1个值。例如,参见测试数据
和组
“a”,它删除了所有3行,而不仅仅是第一行。你试过答案了吗?它给出了与testdata2
中所示相同的预期输出。