[英]Unlist the list into vector and use elements as columns in R(if possible without loops)
我正在使用igraph
的ego
來獲取節點的鄰居。 我的輸入格式如下
V1 V2 1 9 7 2 9 10 3 9 84 4 7 8 5 7 9 6 7 79 7 10 9 8 10 11 9 10 84 10 10 110
然后我在此輸入上執行以下操作(這里rd
是輸入的csv文件)
gs <- graph.data.frame(rd, directed = FALSE)
q<-ego(gs,2,(1:20))
q的輸出為列表as的形式(圖的前5個節點的輸出)
[[1]] + 10/20 vertices, named: [1] 9 7 10 84 8 79 11 110 83 85 [[2]] + 9/20 vertices, named: [1] 7 9 8 79 10 84 33 78 119 [[3]] + 11/20 vertices, named: [1] 10 9 84 11 110 7 83 85 12 111 112 [[4]] + 8/20 vertices, named: [1] 84 9 10 83 85 7 11 110 [[5]] + 7/20 vertices, named: [1] 8 7 33 9 79 32 34
在這里,第一個元素表示在其上執行操作的節點。 我想要的輸出是以如下方式獲取數據幀的:第一列中每個向量的第一個元素,第二列中每個向量的其余元素,例如給定輸出中的第一和第二個向量
V1 V2 1 9 7 2 9 10 3 9 84 4 9 8 5 9 79 6 9 11 7 9 110 8 9 83 9 9 85 10 7 8 11 7 9 12 7 79 13 7 10 14 7 84 15 7 33 16 7 78 17 7 119
如果您提供一個可復制的示例來復制您的問題,則將很有幫助。 例如,簡單到
myList <- list(1:10, 2:11)
應該足夠了。
此時,您可以對lapply
和do.call
使用一些隱藏的循環來構造所需的輸出。
do.call(rbind.data.frame, lapply(myList, function(x) cbind(x[1], x[-1])))
V1 V2
1 1 2
2 1 3
3 1 4
4 1 5
5 1 6
6 1 7
7 1 8
8 1 9
9 1 10
10 2 3
11 2 4
12 2 5
13 2 6
14 2 7
15 2 8
16 2 9
17 2 10
18 2 11
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.