R 从两个向量创建新ID(双向)

R 从两个向量创建新ID(双向),r,dataframe,R,Dataframe,我在一个由因子组成的数据框中有两个向量(每个向量中约有10000个唯一因子) 以下是我的数据的简化示例: tg<-data.frame(A=sample(letters[1:5],30,replace=TRUE), B=sample(letters[1:5],30,replace=TRUE)) A B 1 b b 2 a b 3 e e 4 c b 5 e e 6 a b 7 d a 8 d a 9 d b 10 a e 11 a e

我在一个由因子组成的数据框中有两个向量(每个向量中约有10000个唯一因子)

以下是我的数据的简化示例:

tg<-data.frame(A=sample(letters[1:5],30,replace=TRUE),
               B=sample(letters[1:5],30,replace=TRUE))
   A B
1  b b
2  a b
3  e e
4  c b
5  e e
6  a b
7  d a
8  d a
9  d b
10 a e
11 a e
. . .
但是我想制作新的ID,将“ab”和“ba”视为相同的,我该怎么做


编辑:很抱歉标题混淆,我找不到更好的方法来解释这个问题(因此找不到任何解决方案-如果这里已经有了的话)。

对ID中的字母进行排序将解决问题(如下所示):

strSort
paste0(tg$A,tg$B)
[1] "bb" "ab" "ee" "cb" "ee" "ab" "da" "da" "db" "ae"
"ae" "bc" "ae" "bb" "ec" "ba" "dd" "de" "cd" "eb" "cd"
"db" "dc" "ab" "ae" "cc" "dc" "ce" "eb" "ea"
strSort <- function(x)
     sapply(lapply(strsplit(x, NULL), sort), paste, collapse="")
unique(sapply(new_ids, strSort))
 [1] "be" "bd" "bc" "ae" "aa" "ab" "ad" "cd" "ac" "dd" "ee" "ce" "cc" "de"