过滤掉数据帧 R 中的唯一对

Filter out unique pairs in a dataframe R

我目前有一个名为 countries 的数据框,其中包含 2 列“V1”和“V2”。两列都包含国家/地区缩写,例如 US、CA、RU 等。每行都是一对国家/地区,因此第一行可以是 US 和 RU。但是,我想提取唯一的对,因为有些对是重复的,例如 (US,RU) 和 (RU,US)。我想根据字母顺序提取该对,以便提取 (RU,US),而不是 (US, RU)。

目前我有:

countries = filter(countries, countries$V1 < countries$V2)

但是,这会导致错误。

Error in UseMethod("filter_") : no applicable method for 'filter_' applied to an object of class "c('matrix', 'array', 'character')"

我假设我如何使用过滤功能根据字母顺序取出对存在问题。有没有其他方法可以做到这一点?

您可以尝试使用

distinct_all(countries)

这是一种使用一些示例数据的方法:

library(tidyverse)

countries <- data.frame(V1 = c("US", "MX", "CA", "UR", "US"),
                        V2 = c("MX", "FR", "IN", "US", "MX"),
                        Combo = NA)

for(i in 1:nrow(countries)){
      countries$Combo[i] <- paste0("(", 
                                   str_c(sort(c(countries$V1[i], countries$V2[i])),
                                         collapse = ", "),
                                   ")")
}

countries %>% pull(Combo) %>% unique()