我的问题如下。我正在使用 R/igraph 处理大数据图。
我需要将 clusters()$membership
的输出(即向量)转换为对值进行分组的列表。
示例:我有向量 (3,3,3,1,1,4,4) 我需要一个具有以下结构的列表
l<-list()
l[["3"]]<-c(1,2,3)
l[["4"]]<-c(6,7)
l[["1"]]<-c(4,5)
这是 maximal.cliques()
函数输出的结构
我试过在级别列表上使用 lapply,然后使用它来查找特定值的索引。然而,这表现真的很差。我正在处理 180K 元素的数据向量,其中可能有 60K 不同级别。
最佳答案
看看 split():
> x <- c(3,3,3,1,1,4,4)
> y <- 1:7
> split(y, x)
$`1`
[1] 4 5
$`3`
[1] 1 2 3
$`4`
[1] 6 7
> z <- data.frame(x,y)
> split(z, z$x)
$`1`
x y
4 1 4
5 1 5
$`3`
x y
1 3 1
2 3 2
3 3 3
$`4`
x y
6 4 6
7 4 7
>
关于R 从向量/因子到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7711712/