如何创建一个向量,指示一个向量的元素与另一个向量中的任何元素之间的匹配?
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 ...)
我正在尝试创建一个向量,指示数据框中的国家/地区名称是否与单独列表中的任何值匹配。
单独的国家/地区名称列表如下所示:
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 ...)