过滤掉数据帧 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()
我目前有一个名为 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()