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

时间:2015-03-21 21:08:02

标签: r match

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

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

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

真正的数据框非常大。有没有一种计算上有效的方法呢?

1 个答案:

答案 0 :(得分:2)

怎么样

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

(我不禁指出R help page for the "match" function上有%in%运算符...