R 将唯一标识符粘贴在一起是一个问题

R 将唯一标识符粘贴在一起是一个问题,r,R,我正在研究渔民在公海捕获的鱼类种群。最近,我已经开始测量已知鱼群的单个鱼类之间的距离,并评估鱼群(>15个独特鱼群)是否一起移动 我的问题是,当我比较股票时,我会将股票名称粘贴在一起,有时粘贴在一起的ID会是stock.1_stock.2,有时会是stock.2_stock.1。我需要它们具有相同的唯一标识符,但我不知道如何最好地处理R中的这个问题。有人有什么建议吗 我的实际数据帧很大(>100000行),这可能会影响您回答问题的方式 以下是生成较小示例数据集的一些代码: #making gen

我正在研究渔民在公海捕获的鱼类种群。最近,我已经开始测量已知鱼群的单个鱼类之间的距离,并评估鱼群(>15个独特鱼群)是否一起移动

我的问题是,当我比较股票时,我会将股票名称粘贴在一起,有时粘贴在一起的ID会是stock.1_stock.2,有时会是stock.2_stock.1。我需要它们具有相同的唯一标识符,但我不知道如何最好地处理R中的这个问题。有人有什么建议吗

我的实际数据帧很大(>100000行),这可能会影响您回答问题的方式

以下是生成较小示例数据集的一些代码:

#making generic ids
ids <- rep("stock",times=3)
ids <- paste(ids,1:3, sep=".")

#making simple example
tmp <- expand.grid(ids,ids)
tmp <- tmp[ifelse(tmp$Var1==tmp$Var2,T,F)==F,]
tmp$dist <- c(1,2,1,4,2,4)

#comparing stocks
tmp$both <- paste(tmp$Var1,tmp$Var2, sep="_")
tmp
#      Var1    Var2 dist            both
# 2 stock.2 stock.1    1 stock.2_stock.1
# 3 stock.3 stock.1    2 stock.3_stock.1
# 4 stock.1 stock.2    1 stock.1_stock.2
# 6 stock.3 stock.2    4 stock.3_stock.2
# 7 stock.1 stock.3    2 stock.1_stock.3
# 8 stock.2 stock.3    4 stock.2_stock.3
#生成通用ID

ids如果对每一行的id对进行排序,则最终会为每个配对生成一个唯一的组合id:

tmp$both <- paste(pmin(as.character(tmp$Var1), as.character(tmp$Var2)),
                  pmax(as.character(tmp$Var1), as.character(tmp$Var2)), sep="_")
tmp
#      Var1    Var2 dist            both
# 2 stock.2 stock.1    1 stock.1_stock.2
# 3 stock.3 stock.1    2 stock.1_stock.3
# 4 stock.1 stock.2    1 stock.1_stock.2
# 6 stock.3 stock.2    4 stock.2_stock.3
# 7 stock.1 stock.3    2 stock.1_stock.3
# 8 stock.2 stock.3    4 stock.2_stock.3
tmp$two