R语言 根据另一个数据框的值删除数据框中的观测

dtcbnfnu  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(168)

我有一个类似于下面的 Dataframe :

> dput(df)
structure(list(ID = c(123L, 123L, 123L, 555L, 555L, 555L), City = c("NEW YORK", 
"NEW YORK", "NEW YORK", "Los Angeles", "Los Angeles", "Los Angeles"
)), class = "data.frame", row.names = c(NA, -6L))

如果ID在另一个 Dataframe 中的频率大于1,我想删除这些行,类似于:

> dput(df2)
structure(list(ID = c(123L, 555L), Freq = 2:1), class = "data.frame", row.names = c(NA, 
-2L))

因为ID =123的频率为2,所以我想从原始 Dataframe (df)中删除它们。我们可以在原始 Dataframe 中保留ID =555,因为在第二个 Dataframe 中它们的频率为1。

efzxgjgh

efzxgjgh1#

使用dplyr,您可以像这样进行一些过滤

library(dplyr)

df%>%
  filter(ID %in% (df2%>%filter(Freq>1)%>%pull(ID)))

#>    ID     City
#> 1 123 NEW YORK
#> 2 123 NEW YORK
#> 3 123 NEW YORK

Created on 2023-03-29 with reprex v2.0.2

相关问题