我正在尝试创建一个向量,指示数据框中的国家/地区名称是否与单独列表中的任何值匹配。
单独的国家/地区名称列表如下所示:
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
真正的数据框非常大。有没有一种计算上有效的方法呢?
答案 0 :(得分:2)
怎么样
transform(df,match=as.numeric(country %in% list))
(我不禁指出R help page for the "match" function上有%in%
运算符...