【问题标题】:Clever way to match elements in one data frame to elements in another data frame?将一个数据帧中的元素与另一个数据帧中的元素匹配的聪明方法?
【发布时间】:2012-08-01 17:35:06
【问题描述】:

假设我有两列 x = c("a", "c", "g")y = c("a", "b", "c", "d", "e", "f", "g")

x 是dataframe1 中的一列,y 是dataframe 2 中的一列。dataframe1 在维度上不一定匹配dataframe 2。

我想返回包含 x 的 y 行。例如,我想得到 1、3、7。

我尝试了类似items = which(dataframe1$x == dataframe2$y) 这样的笨拙方法,但显然这不起作用。我知道我可以循环遍历dataframe1$x 并将其与dataframe2$y 匹配,但似乎应该有更好的解决方案。

【问题讨论】:

    标签: r indexing dataframe match


    【解决方案1】:

    你有正确的工具。你只是没有正确使用它。 == 将匹配单个值。如果您想将一个向量与另一个向量匹配,请使用 matchwhich%in%not==)。

    例子:

    df1 <- data.frame(x = c("a", "c", "g"))
    df2 <- data.frame(y = letters[1:7])
    match(df1$x, df2$y)
    # [1] 1 3 7
    which(df2$y %in% df1$x)
    # [1] 1 3 7
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-17
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 2019-08-28
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      相关资源
      最近更新 更多