R 为两个字符串变量创建唯一ID

R 为两个字符串变量创建唯一ID,r,uniqueidentifier,R,Uniqueidentifier,我有一个类似于以下内容的交易数据集: df <- data.frame("Reporter" = c("USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA", "Africa","Africa", "Afric

我有一个类似于以下内容的交易数据集:

df <- data.frame("Reporter" = c("USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA", "Africa","Africa", "Africa","Africa", "Africa","Africa", "Africa","Africa", "EU", "EU","EU", "EU", "EU", "EU", "EU", "EU"), 
                 "Partner" = c("Asia", "Asia", "Asia", "Asia","Africa","Africa", "Africa","Africa","EU", "EU","EU", "EU", "USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA","Africa","Africa", "Africa","Africa"),
                 "Year" = c( 1970, 1970, 1980, 1980, 1970, 1970, 1980, 1980, 1970, 1970, 1980, 1980,  1970, 1970, 1980, 1980, 1970, 1970, 1980, 1980, 1970, 1970, 1980, 1980), 
                 "Flow" = c("Import", "Export","Import", "Export","Import", "Export","Import", "Export","Import", "Export","Import", "Export","Import", "Export","Import", "Export","Import", "Export","Import", "Export", "Import", "Export","Import", "Export"),
                 "Val" = runif(24, min=0, max=100), stringsAsFactors = FALSE) 
使用此技术的问题是,ID在partID和repID之间不匹配。 e、 g.美国ID在repID中为“1”,而在partID中为“4”


我想创建两列中一致的国家ID,例如,美国在repID和partID中都是“1”。此外,重要的是,所有非记者的合作伙伴(即亚洲)都有自己独特的代码。

这两个因素应具有相同的级别。对于这两个因素的级别,您应该使用较大的集合(合作伙伴)

df$repID  <- as.numeric(factor(df$Reporter, levels=unique(df$Partner)))
df$partID <- as.numeric(factor(df$Partner,  levels=unique(df$Partner)))

df$repID尝试使用
lvls创建相同的
levels
您也可以这样做
df$repID非常感谢您解决了我的问题!
df$repID  <- as.numeric(factor(df$Reporter, levels=unique(df$Partner)))
df$partID <- as.numeric(factor(df$Partner,  levels=unique(df$Partner)))