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

R Dataframe:如何统计截至某一位置的行数?

在R Dataframe中统计截至指定位置的行数

嘿,我来帮你搞定这个问题!根据你给出的示例数据,我会分几种常见场景来讲解怎么操作:

先构造示例Dataframe

首先咱们先把你提供的示例数据转换成R的Dataframe,方便后续演示:

df <- data.frame(
  ID = 1:15,
  Time = c(rep("Saturday Evening", 3), rep("Sunday Evening", 6), rep("Saturday Night", 4), rep("Sunday Night", 2)),
  Value1 = c(16.2,23.4,29.4,24.2,24.2,24.2,24.2,25.4,26.8,25.6,24.4,24.4,24.4,25.2,25.2),
  Value2 = c(235.84,235.29,232.79,233.89,233.66,233.38,232.99,233.21,232.37,231.55,231.19,231.63,231.71,231.23,231.23)
)

场景1:已知具体行号,统计截至该行的行数

如果已经明确知道要截至哪一行(比如第8行),那这个行数其实就是行号本身,直接用就行:

target_row <- 8
target_row  # 结果就是8,也就是截至第8行的总行数

要是你想验证一下,也可以用切片后统计行数的方式:

nrow(df[1:target_row, ])  # 同样返回8

场景2:根据条件找到目标位置,统计截至该行的行数

比如你想找到最后一行Saturday Evening,然后统计截至这一行的总行数,操作如下:

# 找到所有符合"Saturday Evening"的行的索引,取最大值就是最后一行的位置
last_sat_evening <- max(which(df$Time == "Saturday Evening"))
last_sat_evening  # 结果是3,也就是截至最后一行周六傍晚的总行数

要是找第一个符合条件的行(比如第一行Sunday Night):

first_sun_night <- min(which(df$Time == "Sunday Night"))
first_sun_night  # 结果是14,也就是截至第一行周日夜晚的总行数

场景3:根据自定义行名找到目标位置,统计截至该行的行数

如果你的Dataframe用了自定义行名(比如把ID列设为行名):

rownames(df) <- df$ID

那如果指定行名为"9",可以这样找到截至该行的行数:

target_row_name <- "9"
# 找到该行对应的索引
row_index <- which(rownames(df) == target_row_name)
row_index  # 结果是9,也就是截至该行名对应行的总行数

总的来说,核心思路就是先找到目标位置对应的行索引,这个索引值就是从Dataframe开头到该位置的总行数啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:39:31