【问题标题】:extract the values which match in both columns提取在两列中匹配的值
【发布时间】:2012-03-02 16:20:57
【问题描述】:

我有两列大小不同的data.frame:

type1    type2
user1  user1
user2  user4
user3  user6
user4  

如何获得匹配项?结果是

user1 
user4

【问题讨论】:

    标签: string r dataframe


    【解决方案1】:

    ?match或类似的?"%in%"

    df$type1[df$type1 %in% df$type2]
    

    【讨论】:

      【解决方案2】:

      首先,data.frame 中的列都必须具有相同的长度(请参阅http://cran.r-project.org/doc/manuals/R-intro.html#Data-frames.),因此我假设您示例中的最后一个条目只是一个空字符串“”。

      您正在寻找的是两列的“交集”,即可以在两列中找到的元素。您可以为此使用intersect 函数:

      df <- data.frame(type1 = c("user1", "user2", "user3", "user4"),
                       type2 = c("user1", "user4", "user6", ""))
      df
      #   type1 type2
      # 1 user1 user1
      # 2 user2 user4
      # 3 user3 user6
      # 4 user4      
      
      intersect(df$type1, df$type2)
      # [1] "user1" "user4"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-12
        • 1970-01-01
        • 2016-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-29
        • 2020-09-29
        相关资源
        最近更新 更多