我有一个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
...
答案 0 :(得分:3)
我们可以使用expand.grid
do.call(paste, c(expand.grid(df1), sep="-"))
答案 1 :(得分:2)
您可以通过使用CJ
软件包中的data.table
函数来实现此目的-
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
参数指定唯一组合。
您还可以使用crossing
包中的tidyr
> do.call(paste,crossing(dt$UG, dt$Neigh, sep="-"))