У меня проблемы с предоставлением уникального и непротиворечивого идентификатора случая для моего набора данных, может быть, кто-то может помочь.
У меня есть набор торговых данных, подобный следующему:
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)
Чтобы отметить, чтов то время как все страны-репортеры также являются партнерами setdiff(df$Reporter, df$Partner)
.Наоборот не верно setdiff(df$Partner, df$Reporter)
.В реальных данных у меня на 61 страну-партнера больше, чем у репортеров.
Я могу установить уникальные идентификаторы как для своих репортеров, так и для переменных партнеров
df$repID <- as.numeric(factor(df$Reporter,
levels=unique(df$Reporter)))
df$partID <- as.numeric(factor(df$Partner,
levels=unique(df$Partner)))
Проблема использования этого метода заключается в том, что идентификаторы делаютне совпадают по двум partID и repID.например, если идентификатор США равен «1» в repID, в partID - «4».
Я хотел бы создать идентификаторы стран, которые согласуются между двумя столбцами, например, для США это "1" как в repID, так и в partID.Также важно, чтобы у всех Партнеров, которые не являются репортерами (например, в Азии), был свой собственный и уникальный код.
большое спасибо за вашу помощь