我有一个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
...发布于 2019-04-12 22:39:53
我们可以使用expand.grid
do.call(paste, c(expand.grid(df1), sep="-"))发布于 2019-04-12 22:49:35
您可以通过使用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="-"))https://stackoverflow.com/questions/55654092
复制相似问题