【问题标题】:How to create a vector indicating matches between the elements of one vector and any element in another?如何创建一个向量来指示一个向量的元素与另一个向量中的任何元素之间的匹配?
【发布时间】:2015-03-21 21:08:02
【问题描述】:

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

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

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

真实的数据框非常大。有没有一种计算效率高的方法?

【问题讨论】:

    标签: r match


    【解决方案1】:

    怎么样

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

    ?

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

    【讨论】:

    • 有时很难寻找副本,因为通常标题是错误的。
    • 我刚刚尝试搜索 [r] "%in%" match,但没有很快找到合适的内容
    • 我猜测寻找 %in% 不会有用,因为 OP 通常不知道这是他要寻找的。​​span>
    • 但它应该在答案中,对吧?搜索也不会将答案编入索引吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    相关资源
    最近更新 更多