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

如何在R语言的数据框中获取指定范围内特定值的位置

如何在R语言中查找指定行范围内值为0的位置?

需求:现有36行的数据框,需在12至36行的范围内,找出Baseline history Q列中值为0的所有行位置。

数据框结构

structure(list(`Key Figures` = c("Jan-19", "Feb-19", "Mar-19", 
"Apr-19", "May-19", "Jun-19", "Jul-19", "Aug-19", "Sep-19", "Oct-19", 
"Nov-19", "Dec-19", "Jan-20", "Feb-20", "Mar-20", "Apr-20", "May-20", 
"Jun-20", "Jul-20", "Aug-20", "Sep-20", "Oct-20", "Nov-20", "Dec-20", 
"Jan-21", "Feb-21", "Mar-21", "Apr-21", "May-21", "Jun-21", "Jul-21", 
"Aug-21", "Sep-21", "Oct-21", "Nov-21", "Dec-21"), SKU = c("XYZ_20645", 
"XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645", 
"XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645", 
"XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645", 
"XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645", 
"XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645", 
"XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645", 
"XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645", "XYZ_20645"
), `Baseline history Q` = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 
10, 0, 100, 0, 30, 0, 50, 70, 280)), row.names = c(NA, -36L), class = c("tbl_df", 
"tbl", "data.frame"))

现有代码

Pd <- read_excel("X:/X/X/X- X/X/X.xlsx", sheet = "X")

Start_Location <- head(which(Pd$`Baseline history Q`!=0),1)
End_Location <- tail(which(Pd$`Baseline history Q`!=0),1)

which(Pd$`Baseline history Q`!=0)

已知Start_Location = 12,End_Location = 36,需在该区间内找到值为0的位置。

解决方案

方法1:截取区间后转换行号

先提取目标行范围内的列数据,找到0的相对位置后,转换为原数据框的绝对行号:

# 提取12-36行的目标列数据
target_data <- Pd$`Baseline history Q`[Start_Location:End_Location]
# 找出相对位置并转换为绝对行号
zero_positions <- which(target_data == 0) + Start_Location - 1

方法2:直接用逻辑条件筛选

通过逻辑运算同时满足「值为0」和「行号在目标区间」两个条件:

zero_positions <- which(Pd$`Baseline history Q` == 0 & seq(nrow(Pd)) >= Start_Location & seq(nrow(Pd)) <= End_Location)

验证结果

运行上述代码后,针对示例数据会返回:[1] 26 29 31 33,对应数据框中12-36行内值为0的行位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 02:37:04