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

如何在R中删除DataFrame中规律分布的连续行区间?

批量删除R语言DataFrame指定连续行区间的实现方法

先明确待删除行的规律

你需要删除的是每间隔18行出现一次的9行连续区间:从10-18开始,下一组是28-36,直到最后一组442-450。每组起始行的间隔为18,每组包含9行(起始行到起始行+8)。

方法一:基础R实现

先生成所有待删除的行号,再通过负索引完成删除:

# 生成所有待删除区间的起始行
start_rows <- seq(from = 10, to = 442, by = 18)
# 将每个起始行扩展为对应的9行区间,合并成完整的待删除行向量
rows_to_remove <- unlist(lapply(start_rows, function(x) x:(x+8)))
# 删除指定行,得到清理后的DataFrame
df_clean <- df[-rows_to_remove, ]

方法二:用dplyr包实现

如果习惯使用tidyverse工具链,可以结合row_number()和filter()操作:

library(dplyr)

# 先生成待删除行号(逻辑和基础R一致)
start_rows <- seq(from = 10, to = 442, by = 18)
rows_to_remove <- unlist(lapply(start_rows, function(x) x:(x+8)))

# 过滤掉指定行
df_clean <- df %>%
  filter(!(row_number() %in% rows_to_remove))

结果验证

原DataFrame共450行,待删除区间总计25组(每组9行),共删除225行。清理后的df_clean应剩余225行,可通过nrow(df_clean)确认结果是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 01:15:31