You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言:按多变量条件删除数据框行失败,求解决方案

删除数据框中满足多变量条件的行

你代码的问题出在逻辑判断上:原语句m != "March" & Y != "2022"要求行必须同时满足「不是3月」和「不是2022年」,但你的数据里没有符合这个要求的行,所以返回了空数据框。

正确的逻辑应该是:排除掉**同时满足m="March"和Y="2022"**的行,也就是保留所有不满足这个组合条件的行。

下面是两种基于dplyr的可行解法:

方法1:用filter()(推荐,dplyr标准用法)

library(tidyverse)
m <-  c("March","March","March", "April", "May","June")
Y <-  c("2022","2022","2021","2022","2022","2022")
N <- c(152,75,869,421,748,52)

df <- data.frame(m,Y,N)

# 过滤掉2022年3月的行
df <- df %>% 
  filter(!(m == "March" & Y == "2022"))
df

运行后输出:

m    Y   N
1 March 2021 869
2 April 2022 421
3   May 2022 748
4  June 2022  52

方法2:修正subset()的逻辑

如果习惯用subset(),只需要把条件改成否定组合判断即可:

df <- df %>% 
  subset(!(m == "March" & Y == "2022"))

补充:你也可以用等价的逻辑或条件m != "March" | Y != "2022"来实现,结果完全一致。

内容的提问来源于stack exchange,提问作者HMK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:30:48