Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于列条件从数据框中大规模删除行_R - Fatal编程技术网

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
中所示相同的预期输出。