我知道如何根据两列的值选择数据框中的行(使用此问题上接受的答案中的代码:Conditionally Remove Dataframe Rows with R)
我的数据框看起来像这样(简化):
Date Afd Count
2012-03-23 12 0
2012-03-23 16 10
2012-03-23 17 12
2012-03-27 12 3
2012-03-27 16 9
2012-03-27 13 7
2012-03-27 22 5
2012-04-05 12 11
2012-04-05 23 8
现在我使用这段代码:
df <- df[!(df$Afd=="12" & df$Date=="2012-03-23"),]
但我也想放弃另一个Afd和另一个Date。遵循这个逻辑: 如果Afd = 12或16,日期= 2012-03-23或2012-03-27,则删除行。
我是否必须使用不同的组合重复此行4次,还是有更好的解决方案? (我怀疑后者)
答案 0 :(得分:1)
您可以使用|
添加或声明,也可以使用%in%
df <- subset(df, !(Afd %in% c("12", "16") &
Date %in% as.Date(c("2012-03-23", "2012-03-27"))
)
)