gpt4 book ai didi

r - 在 R 中识别两列中的对

转载 作者:行者123 更新时间:2023-12-04 20:28:28 25 4
gpt4 key购买 nike

我有一个包含国家间双边关系的数据框:

C1 C2
US FR
FR US
US DE
DE US
US RU
US FI
RU FI
FI RU

这些链接是定向的,其中一些链接丢失了(例如,我有 US>RU 但没有 RU>US)。我想识别所有独特的对;有这样的事情:
C1 C2 PairID
US FR 1
FR US 1
US DE 2
DE US 2
US RU -
US FI -
RU FI 3
FI RU 3

有什么建议?

最佳答案

这是一种选择,假设您还想计算非双向关系,如 US>RU :

library(dplyr)
df %>%
mutate(relation = paste(pmin(C1, C2), pmax(C1, C2), sep = "-"), #define the relation no matter the direction
PairID = cumsum(c(1, head(relation, -1) != tail(relation, -1)))) %>%
select(-relation)
# output
C1 C2 PairID
1 US FR 1
2 FR US 1
3 US DE 2
4 DE US 2
5 US RU 3
6 US FI 4
7 RU FI 5
8 FI RU 5

# Data: df
structure(list(C1 = c("US", "FR", "US", "DE", "US", "US", "RU",
"FI"), C2 = c("FR", "US", "DE", "US", "RU", "FI", "FI", "RU")), .Names = c("C1",
"C2"), class = "data.frame", row.names = c(NA, -8L))

关于r - 在 R 中识别两列中的对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52229960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com