我知道严格意义上的编程问题在这个平台上是不可能的,但我想知道你们中是否有人能回答我想做的事情。我对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