根据R中的值删除行[重复]

Posted

技术标签:

【中文标题】根据R中的值删除行[重复]【英文标题】:Delete rows based on values in R [duplicate] 【发布时间】:2021-05-13 04:47:58 【问题描述】:

有没有办法根据值删除行。例如

df
ColA   ColB
A      1
B      2    
A      3

预期输出(基本上我知道我们可以根据行号删除。但是有没有办法根据值删除(“A”,3)

df
ColA   ColB
A      1
B      2    

【问题讨论】:

查看subset函数subset(df, !(ColA == "A" & ColB == 3)) 【参考方案1】:

filter 的选项

library(dplyr)
df %>% 
    filter(!(ColA == "A" & ColB == 3))
   

【讨论】:

【参考方案2】:

您可以使用基础 R 中的subset

> subset(df,!(ColA=="A"&ColB==3))
  ColA ColB
1    A    1
2    B    2

data.table 解决方案

> setDT(df)[!.("A",3),on = .(ColA,ColB)]
   ColA ColB
1:    A    1
2:    B    2

【讨论】:

【参考方案3】:

最简单的方法是使用which() 函数(?which)。然后,您可以将其与减号结合使用,并根据特定条件对子集进行索引。

df <- as.data.frame(cbind("ColA"=c("A", "B", "A"), "ColB" = c(1, 2, 3)))

df <- df[-which(df[,2]==3),]

View(df)

【讨论】:

以上是关于根据R中的值删除行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

根据条件 pandas 删除 DataFrame 中的重复行

根据列中的值重复行

如何聚合数据框并通过 r 中的重复行对列的值求和

根据条件从 r 中的多列中删除重复的行

如何根据一个表中的特定值从3个表中删除行[重复]

根据 R 中的值绘制条件颜色 [重复]