簡體   English   中英

從2個向量創建所有可能的組合

[英]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參數指定唯一組合。

您還可以使用從tidyrcrossing

> do.call(paste,crossing(dt$UG, dt$Neigh, sep="-"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM