未找到每个ID的返回值-R

未找到每个ID的返回值-R,r,dplyr,subset,R,Dplyr,Subset,我想在供应商数据框中为每个供应商标识不匹配的值。换句话说,为每个供应商查找不在供应商数据框中的国家/地区 我有一个数据框(供应商),如下所示: 供应商ID 小贩 国家识别号 国家 1. 汉堡王 2. 美国 1. 汉堡王 3. 法国 1. 汉堡王 5. 巴西 1. 汉堡王 7. 土耳其 2. 麦当劳 5. 巴西 2. 麦当劳 3. 法国 在Base R中,我们可以首先按供应商分割数据 VenList <- split(df, df$Vendor) VenList在Base R中,我们可以首

我想在供应商数据框中为每个供应商标识不匹配的值。换句话说,为每个供应商查找不在供应商数据框中的国家/地区

我有一个数据框(供应商),如下所示:

供应商ID 小贩 国家识别号 国家 1. 汉堡王 2. 美国 1. 汉堡王 3. 法国 1. 汉堡王 5. 巴西 1. 汉堡王 7. 土耳其 2. 麦当劳 5. 巴西 2. 麦当劳 3. 法国
Base R
中,我们可以首先按供应商分割数据

VenList <- split(df, df$Vendor)

VenList在
Base R
中,我们可以首先按供应商划分数据

VenList <- split(df, df$Vendor)

VenList解决方案使用
expand.grid
创建所有可能的供应商-国家组合(假设每个国家“只有一个条目),然后使用
dplyr
加入“供应商”并查找“缺失国家”

编辑:最后两行(左联合)仅用于将ID列“翻译”为“文本”:

返回


解决方案使用
expand.grid
创建所有可能的供应商-国家组合(假设每个国家“只有一个条目),然后使用
dplyr
加入“供应商”并查找“缺失的国家”

编辑:最后两行(左联合)仅用于将ID列“翻译”为“文本”:

返回


你好如果你添加一个答案,你可以让其他人更容易找到并测试你问题的答案。这样你可以帮助别人来帮助你!刚刚编辑了这个问题。谢谢你让我知道。嗨。如果你添加一个答案,你可以让其他人更容易找到并测试你问题的答案。这样你可以帮助别人来帮助你!刚刚编辑了这个问题。谢谢你让我知道。
df <- read.table(text = "1  BurgerKing  2   USA
1   BurgerKing  3   France
1   BurgerKing  5   Brazil
1   BurgerKing  7   Turkey
2   McDonald's 5    Brazil
2   McDonald's 3    France", col.names = c("Vendor_ID", "Vendor",   "Country_ID",   "Country"))

df2 <- read.table(text = "2 USA
3   France
5   Brazil
7   Turkey", col.names = c("Country_ID",    "Country")) `
library(dplyr)

expand.grid(Vendor_ID=unique(Vendors$Vendor_ID), Country_ID=Countries$Country_ID) %>% 
  left_join(Vendors) %>% 
  filter(is.na(Vendor)) %>%
  select(Vendor_ID, Country_ID) %>% 
  left_join(Countries) %>% 
  left_join(unique(Vendors[, c("Vendor_ID", "Vendor")]))
  Vendor_ID Country_ID Country     Vendor
1         2          2     USA McDonald's
2         2          7  Turkey McDonald's