[英]Create all possible combinations from 2 vectors
我有一個txt文件,其中包含如下所示的鄰居列表:
UG Neigh
6 7
6 504
6 508
6 514
9 11
9 14
10 352
... ...
我需要為每個UG創建一個Neigh的所有可能組合的列表。 例:
6-7
6-504
6-508
6-514
6-7-504
6-7-508
6-7-514
6-504-508
6-504-514
6-508-514
6-7-504-508
9-11
9-14
9-11-14
...
我們可以使用expand.grid
do.call(paste, c(expand.grid(df1), sep="-"))
您可以通過使用data.table
CJ
函數來執行此操作-
library(data.table)
dt <- CJ(UG = dt$UG, Neigh = dt$Neigh, unique = TRUE)
setDT(dt)[, final:=paste0(UG,"-",Neigh)]
樣本數據-
dt <- read.table(text="UG Neigh
6 7
6 504
6 508
6 514
9 11
9 14
10 352",header=T)
輸出 -
UG Neigh final
1: 6 7 6-7
2: 6 11 6-11
3: 6 14 6-14
4: 6 352 6-352
5: 6 504 6-504
6: 6 508 6-508
7: 6 514 6-514
8: 9 7 9-7
9: 9 11 9-11
10: 9 14 9-14
11: 9 352 9-352
12: 9 504 9-504
13: 9 508 9-508
14: 9 514 9-514
15: 10 7 10-7
16: 10 11 10-11
17: 10 14 10-14
18: 10 352 10-352
19: 10 504 10-504
20: 10 508 10-508
21: 10 514 10-514
注意 -您還可以使用unique
參數指定唯一組合。
您還可以使用從tidyr
包crossing
> do.call(paste,crossing(dt$UG, dt$Neigh, sep="-"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.