如何高效在R中删除指定PARCELLE里Qm>3的数据行?
精简数据集过滤语句方案
Python Pandas 实现
直接通过布尔索引一次性完成过滤(保留符合要求的行,等价于删除目标行):
# 保留不满足"PARCELLE为1/3/4/8且Qm>3"的行 df = df[~((df['PARCELLE'].isin([1, 3, 4, 8])) & (df['Qm'] > 3))]
isin([1,3,4,8])一次性匹配所有目标PARCELLE值,替代多条等值判断&同时关联两个删除条件,~取反得到需要保留的行- 单条语句仅遍历数据集一次,适合大型数据场景,效率远高于多次过滤
R 语言实现
用%in%运算符整合多值条件,一次完成筛选:
# 保留符合要求的行,等价于删除目标行 df <- df[!((df$PARCELLE %in% c(1, 3, 4, 8)) & (df$Qm > 3)), ]
%in% c(1,3,4,8)批量匹配指定PARCELLE值,简化多条件写法!取反逻辑,直接得到需要保留的数据集,避免多次数据操作
内容的提问来源于stack exchange,提问作者Enialoj
相关产品推荐
相关产品推荐

