如何创建一个向量,指示一个向量的元素与另一个向量中的任何元素之间的匹配?

How to create a vector indicating matches between the elements of one vector and any element in another?

我正在尝试创建一个向量,指示数据框中的国家/地区名称是否与单独列表中的任何值匹配。

单独的国家/地区名称列表如下所示:

list = c("Canada", "China", "Brazil")

我有一个大型数据框,其中包含带有国家/地区名称的列向量:

region = c(1,2,3,4,5,6,7)
country = c("Canada", "Canada", "Canada", "United States", "United States", "Brazil", "Brazil")       

df = data.frame(region, country)
df

我希望最终结果类似于:

matches <- c(1,1,1,0,0,1,1)

new_df = data.frame(df, matches)
new_df

真实的数据框很大。有计算效率高的方法吗?

怎么样

transform(df,match=as.numeric(country %in% list))

?

(我不禁指出 %in% 运算符被覆盖在 R help page for the "match" function ...)