这是我的示例代码:
DF$Owner <- ifelse (ExcelData$Brand %in% Reference$Brand, Reference$Owner, "NULL")
基本上,我想做的是识别是否存在从ExcelData
到Reference
的品牌。如果有,我会得到它的所有者
示例:在ExcelData中有一个品牌"Baja",在参考文件中也有一个"Baja’"品牌。现在有了%in%
的逻辑,我应该得到品牌"Baja"的所有者,在本例中是"AMBC01",但运行代码时得到的所有者不同。现在我在想,也许我需要跟踪这一行或任何事情,以便为每个确定的品牌找到合适的所有者。
最好使用联接,而不是ifelse
和%in%
。不同类型的联接将2列(或多个表(合并为一个表。根据你的描述,左加入似乎是可行的,请参阅下面的模拟和代码:
library(tibble)
library(tidyverse)
# Data simulation
excel_data <- tribble(~ brand, ~id,
"Baja", 1,
"Aumento", 4)
reference_data <- tribble(~brand, ~owner,
"Baja", "AMBC01",
"Aumento", "BMBC02",
"Azul", "CDCX03")
# Algorithm
left_join(excel_data, reference_data, by = "brand")
输出:
Joining, by = "brand"
# A tibble: 2 x 3
brand id owner
<chr> <dbl> <chr>
1 Baja 1 AMBC01
2 Aumento 4 BMBC02