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

基于分组添加标注:为R数据框新增rel_from列的实现需求

R语言分组处理data.frame,为Ind行添加rel_from标注

示例数据

先构造一个符合需求的测试数据集:

mydata <- data.frame(
  Name = c("Alice", "Alice", "Bob", "Bob", "Charlie", "Charlie", "Dave", "Dave", "Eve", "Eve", "Eve"),
  Dep = c("HR", "HR", "Eng", "Eng", "Fin", "Fin", "Ops", "Ops", "Mar", "Mar", "Mar"),
  Loc = c("NY", "NY", "LA", "LA", "Chicago", "Chicago", "Boston", "Boston", "Dallas", "Dallas", "Dallas"),
  rel = c("Ind", "Boss", "Ind", "Dir", "Ind", "Boss", "Ind", "Dir", "Ind", "Boss", "Dir")
)

处理方案(使用dplyr)

利用dplyr的分组和条件判断功能实现需求,步骤如下:

  1. 加载dplyr包(未安装先运行install.packages("dplyr"))
library(dplyr)
  1. 分组并添加rel_from列
mydata_processed <- mydata %>%
  # 按Name、Dep、Loc分组
  group_by(Name, Dep, Loc) %>%
  # 根据分组内的rel值,为Ind行赋值rel_from
  mutate(
    rel_from = case_when(
      # 非Ind行设为NA
      rel != "Ind" ~ NA_character_,
      # 同时存在Boss和Dir → 标注Both
      "Boss" %in% rel & "Dir" %in% rel ~ "Both",
      # 仅存在Boss → 标注Boss
      "Boss" %in% rel ~ "Boss",
      # 仅存在Dir → 标注Dir
      "Dir" %in% rel ~ "Dir",
      # 兜底情况(理论上不会触发)
      TRUE ~ NA_character_
    )
  ) %>%
  # 取消分组
  ungroup()

输出结果

运行上述代码后,得到的处理结果如下:

# A tibble: 11 × 5
   Name    Dep   Loc     rel   rel_from
   <chr>   <chr> <chr>   <chr> <chr>   
 1 Alice   HR    NY      Ind   Boss    
 2 Alice   HR    NY      Boss  NA      
 3 Bob     Eng   LA      Ind   Dir     
 4 Bob     Eng   LA      Dir   NA      
 5 Charlie Fin   Chicago Ind   Boss    
 6 Charlie Fin   Chicago Boss  NA      
 7 Dave    Ops   Boston  Ind   Dir     
 8 Dave    Ops   Boston  Dir   NA      
 9 Eve     Mar   Dallas  Ind   Both    
10 Eve     Mar   Dallas  Boss  NA      
11 Eve     Mar   Dallas  Dir   NA      

代码逻辑说明

  • group_by(Name, Dep, Loc):将数据按指定的三个列分组,确保每个组内是同一Name、Dep、Loc的记录
  • case_when():按顺序判断条件,为rel_from赋值:
    • 首先排除非Ind行,设为NA
    • 优先判断是否同时存在Boss和Dir,满足则标注"Both"
    • 其次判断是否存在Boss,满足则标注"Boss"
    • 最后判断是否存在Dir,满足则标注"Dir"
  • ungroup():处理完成后取消分组,恢复普通data.frame结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 04:55:22