R语言如何统计含列表的矩阵中相同列的出现频次
解决方案
你可以通过如下代码完成频次统计,输出结果和你预期完全一致:
library(dplyr) library(tibble) # 转换resEdges结构后统计频次 edgeFreq <- t(resEdges) |> as.data.frame() |> rowwise() |> # 将向量转为空格拼接的字符串,用于去重计数 mutate( from = paste(from, collapse = " "), to = paste(to, collapse = " ") ) |> ungroup() |> # 按from、to分组统计出现次数 count(from, to, name = "frequency") |> as_tibble() # 查看结果 print(edgeFreq)
运行后输出:
# A tibble: 3 × 3 from to frequency <chr> <chr> <int> 1 1 1 2 3 3 2 1 2 2 1 2 3 4 5 1 3 1 2 2 1 5 5 2 3 4 5 6 7 2
如果后续需要用原始向量做计算,不想转成字符串,可以用嵌套列表的方式保留原始格式:
library(tidyr) edgeFreq_raw <- t(resEdges) |> as.data.frame() |> rowwise() |> nest(edge_data = c(from, to)) |> ungroup() |> count(edge_data, name = "frequency") |> unnest_wider(edge_data)
内容的提问来源于stack exchange,提问作者Electrino
相关产品推荐
相关产品推荐

