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

如何使用egor包移除节点数少于10个的自我中心网络?

解决方法

错误原因

你代码报错的核心是误解了egor.obj$alter的结构:它不是按ego拆分的列表,而是单一数据框,每行对应一个alter,包含egoID列关联对应的自我。你用map_dbl去遍历它,相当于把数据框的列当成列表元素处理,自然会出现$ operator is invalid for atomic vectors的错误。

正确代码步骤

先加载依赖包:

library(egor)
library(tidyverse)
  1. 统计每个ego的网络规模
    从alter数据中按egoID分组计数,得到每个自我的网络大小:
ego_netsize <- egor.obj$alter %>%
  count(egoID, name = "netsize")
  1. 合并网络规模到ego数据并过滤
    把统计结果合并到ego属性表,同时移除网络规模小于10的自我:
egor.obj$ego <- egor.obj$ego %>%
  left_join(ego_netsize, by = "egoID") %>%
  filter(netsize >= 10)
  1. 同步过滤alter数据
    确保alter数据只保留过滤后剩下的ego对应的记录:
egor.obj$alter <- egor.obj$alter %>%
  filter(egoID %in% egor.obj$ego$egoID)

补充说明

  • 用count统计行数比你原来的max(.x$nodeID)更准确,因为nodeID可能存在不连续的情况,行数才是真实的网络成员数量。
  • 同步过滤alter数据是必须的,否则egor对象里的ego和alter会出现不匹配的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 05:32:35