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

如何在R中标记重复节点并移除其子节点(附可复现示例)

解决方案

我们可以通过定位目标重复节点的特定实例并修改其名称,同时保留主分支的完整结构,来实现需求:

  1. 定位需要修改的重复节点:找到父节点不是Root的B节点(也就是y1的子节点B)
  2. 重命名标记该节点:将这个节点重命名为B (-r)
  3. 自动保留主分支结构:原Root下B的子节点(x3、y2)因为关联的是原名称B,不会被关联到重命名后的节点,自然满足“移除重复B的所有子节点”的要求

对应的R代码实现:

library(data.table)

# 加载测试数据
testDT = fread(
"from   to
Root    A
A   x1
x1  y1
y1  z1
y1  B
Root    B
B   x3
x3  y2
Root    C")

# 重命名非Root分支下的B节点
testDT[from != "Root" & to == "B", to := "B (-r)"]

# 查看处理后的结果
print(testDT)

执行后得到的结果如下:

from       to
1: Root        A
2:    A       x1
3:   x1       y1
4:   y1       z1
5:   y1 B (-r)
6: Root        B
7:    B       x3
8:   x3       y2
9: Root        C

该结果完全符合需求:

  • y1下的B被标记为B (-r)且无任何子节点
  • Root下的B及其子节点x3、y2的完整层级结构被保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:25:19