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

如何在R数据框中为连续重复行保留首次Class值,非连续重复值重新保留

解决方案

针对你的需求,我们可以通过判断当前行的Class与前一行是否相同,来决定是否保留当前Class值——连续重复的仅保留首个,非连续的重复值则正常保留。以下提供两种实现方式:

方法一:使用dplyr包

library(dplyr)

# 处理数据:连续重复的Class设为NA,非连续重复的保留
df_processed <- df %>%
  mutate(Class = ifelse(Class != lag(Class, default = ""), Class, NA))

方法二:使用Base R

# 生成标记向量:TRUE表示保留当前Class,FALSE表示不保留
keep_flag <- c(TRUE, df$Class[-1] != df$Class[-nrow(df)])

# 将不需要保留的Class替换为NA
df_processed <- df
df_processed$Class[!keep_flag] <- NA

处理后结果

处理后的数据框如下,符合你要求的规则(ID1和6的A均被保留,连续重复的Class仅留首个):

IDClassScore
1A45
2NA67
3NA87
4C33
5NA25
6ANA
7B67
8NA88
9D21
10NANA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 12:12:57