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

基于DayFLAG变量分组去除重复数据的R语言实现

解决方案

方法1:Base R 实现

利用duplicated()函数基于Name和Incident_Day两列判断重复行,筛选出非重复记录后移除DayFLAG列:

# 模拟数据
df <- data.frame(Name = c(rep("John Snow", 6), rep("Tyrion Lanister", 3), "Arya"),
                 Incident_Day = c(1,1,1,2,2,3,1,2,2,6),
                 DayFLAG = c(T,T,T,T,T,F,F,T,T,F))

# 去重并移除DayFLAG列
df_2 <- df[!duplicated(df[c("Name", "Incident_Day")]), c("Name", "Incident_Day")]

# 查看结果
df_2

输出结果:

Name Incident_Day
1       John Snow            1
4       John Snow            2
6       John Snow            3
7 Tyrion Lanister            1
8 Tyrion Lanister            2
10            Arya            6

方法2:dplyr 包实现

用tidyverse风格的代码,两种简洁写法可选:

library(dplyr)

# 写法1:用distinct直接去重
df_2 <- df %>%
  distinct(Name, Incident_Day, .keep_all = FALSE)

# 写法2:分组后取每组第一行再移除冗余列
df_2 <- df %>%
  group_by(Name, Incident_Day) %>%
  slice_head(n = 1) %>%
  ungroup() %>%
  select(-DayFLAG)

# 查看结果
df_2

两种写法都能得到你期望的输出,其中distinct()方法更直接,指定需保留唯一值的列即可完成去重。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:10:09