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

如何从原DataFrame中简便移除特定日期前的男性数据?

解决方法

你的核心需求是移除原DataFrame中**男性(geschlecht == 1)且日期早于/等于2023-07-21 10:22:24**的行,直接更新原DataFrame即可,以下是几种简便实现方式:

方法1:dplyr筛选保留行(推荐)

直接筛选需要保留的记录并覆盖原对象,逻辑更清晰:

# 写法1:排除要移除的行
test <- dplyr::filter(test, !(geschlecht == 1 & datetime <= "2023-07-21 10:22:24"))

# 写法2:拆分逻辑(保留非男性,或男性但日期晚于指定时间)
test <- dplyr::filter(test, geschlecht != 1 | datetime > "2023-07-21 10:22:24")

方法2:base R原生subset函数

如果不想用dplyr,可直接用base R的subset:

test <- subset(test, !(geschlecht == 1 & datetime <= "2023-07-21 10:22:24"))

方法3:dplyr反连接

先筛选出要移除的行,再通过反连接得到剩余数据:

# 定义要移除的数据集
to_remove <- dplyr::filter(test, geschlecht == 1 & datetime <= "2023-07-21 10:22:24")
# 反连接更新原DataFrame
test <- dplyr::anti_join(test, to_remove)

原代码的问题说明

你当前的代码men <- dplyr::filter(test, !datetime > "2023-07-21 10:22:24" & !geschlecht == 1)逻辑有误,它筛选的是日期早于指定时间且非男性的行,和你要移除的目标完全相反,所以无法实现需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:11:00