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

在R中如何基于tidygraph列表元素的name列对列表进行重排序?

解决方案

你只需要在生成索引的步骤中,先统计每个name特征对应的组大小,排序时优先按组大小降序排列即可,完整实现代码如下:

library(tidygraph)
library(purrr)
library(tidyr)
library(dplyr)

ind <- map(myList, function(x){
  x %>%
    pull(name) %>%
    replace_na("..") %>%
    paste0(collapse = "")
}) %>%
  unlist(use.names = FALSE) %>%
  as_tibble() %>%
  mutate(ids = row_number()) %>%
  group_by(value) %>%
  mutate(group_n = n()) %>% # 统计当前name特征对应的组总元素个数
  ungroup() %>%
  arrange(-group_n, value) %>% # 优先按组大小降序,同name特征的元素集中排列
  pull(ids)

myListNew <- myList[ind]

运行后myListNew的顺序和你期望的手动排序结果完全一致:前3个是name为x4,NA,NA的对象,中间2个是name为x4,x2,NA,NA,x1,NA,NA的对象,最后1个是name为x1,x2,NA的对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:15:05