根据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中的值删除行[重复]的主要内容,如果未能解决你的问题,请参考以下文章