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

如何在R语言中筛选至Description列最后一个'Total'值为止的数据?

筛选数据至最后一个Total行

问题描述

现有如下R数据框:

df<-data.frame(  
         Description=c("15","11","12","NA","Total","NA","9","18","NA","Total","9","18","NA","11"),
         Value=c(158,196,NA,156,140,693,854,NA,904,925,156,140,693,123))

df

需求是:仅保留Description列中最后一个值为Total的行为止的所有数据。

尝试了以下命令但未生效(该命令仅筛选出Description为Total的行,不符合需求):

df %>% filter(Description=='Total')

解决方案

你需要先定位最后一个Total所在的行号,再筛选该行及之前的所有数据,以下是两种可行实现方式:

方式1:使用dplyr包

library(dplyr)

# 获取最后一个Total的行索引
last_total_row <- which(df$Description == "Total") %>% tail(1)

# 筛选目标数据
df_filtered <- df[1:last_total_row, ]

df_filtered

方式2:纯Base R实现(无需额外包)

# 定位最后一个Total的位置
last_pos <- max(which(df$Description == "Total"))

# 截取目标数据
df_filtered <- df[1:last_pos, ]

df_filtered

执行上述代码后,即可得到从第一行到最后一个Total行的所有数据,满足需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:35:23