用R中的规则合并两列

  • 本文关键字:两列 合并 规则 r
  • 更新时间 :
  • 英文 :


我知道严格意义上的编程问题在这个平台上是不可能的,但我想知道你们中是否有人能回答我想做的事情。我对R或编码完全陌生。

这是我的数据示例:

X1  year individual partner 
<dbl> <dbl> <chr> <chr>      
1     1  2015  A     B             
2     2  2015  A     B             
3     3  2015  B     A             
4     4  2015  C     A              
5     5  2015  C     D             
6     6  2015  D     C              

我想创建一个新的列,它将给我二元体的id。二人组将是个人和伴侣的独特组合。我可以将列合并在一起,但在这种情况下,A_B和B_A将是两个不同的二元体然而,这两者实际上是同一个二元体。

我想要实现的一个例子:

X1  year individual partner dyad 
<dbl> <dbl> <chr> <chr> <chr>
1     1  2015  A     B     A_B
2     2  2015  A     B     A_B
3     3  2015  B     A     A_B
4     4  2015  C     A     C_A
5     5  2015  C     D     C_D
6     6  2015  D     C     C_D

我有一种方法可以将两列合并在一起,但要制定一个规则,说明如何在新列中组合这些列,这在我的情况下是合适的?

谢谢你的帮助。

你可以试试这个:

#Data
df <- structure(list(X1 = 1:6, year = c(2015L, 2015L, 2015L, 2015L, 
2015L, 2015L), individual = c("A", "A", "B", "C", "C", "D"), 
partner = c("B", "B", "A", "A", "D", "C")), row.names = c("1", 
"2", "3", "4", "5", "6"), class = "data.frame")
#Create index
df$id <- apply(df[,c(3:4)],1,function(x)paste(sort(x),collapse = "_"))
X1 year individual partner  id
1  1 2015          A       B A_B
2  2 2015          A       B A_B
3  3 2015          B       A A_B
4  4 2015          C       A A_C
5  5 2015          C       D C_D
6  6 2015          D       C C_D

最新更新