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

如何在R中生成嵌套AD组的完整成员路径列?

R语言生成AD组多层嵌套的完整成员路径

针对你提供的AD组嵌套数据,我们可以通过递归函数构建每个成员的完整路径,具体实现步骤如下:

1. 预处理数据

先将数据框的所有列转换为字符型,避免因子类型干扰后续逻辑:

# 转换所有列为字符型
df[] <- lapply(df, as.character)

2. 定义递归函数获取组的完整父路径

递归函数会从当前组向上追溯,直到找到顶级组(父组与自身相同的组),拼接出从顶级到当前组的完整路径:

# 递归获取组的完整父路径
get_full_group_path <- function(current_group) {
  parent_group <- df$Parent_Group[df$Group == current_group][1]
  # 顶级组的父组等于自身,直接返回
  if (parent_group == current_group) {
    return(current_group)
  } else {
    # 递归拼接父组路径与当前组
    paste(get_full_group_path(parent_group), current_group, sep = " -> ")
  }
}

3. 生成Membership Path列

通过mapply遍历每一行,将组的完整路径与成员拼接,得到最终的完整成员路径:

# 生成完整成员路径
df$`Membership Path` <- mapply(function(group, member) {
  group_path <- get_full_group_path(group)
  paste(group_path, member, sep = " -> ")
}, df$Group, df$Member)

运行结果示例

执行上述代码后,数据框会新增Membership Path列,部分结果如下:

Parent_GroupGroupMemberMbrTypeMembership Path
AAM1UserA -> M1
AAG1GroupA -> G1
AG1M4UserA -> G1 -> M4
AG1G2GroupA -> G1 -> G2
BG11M13UserB -> G11 -> M13

注意事项

  • 该方法支持任意层级的嵌套组,递归会自动追溯到顶级组
  • 请确保数据中不存在循环嵌套(如组A包含组B,组B又包含组A),否则递归会陷入无限循环

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:43:14