【问题标题】:Keeps rows using values from other dataframe [duplicate]使用来自其他数据框的值保留行[重复]
【发布时间】:2018-10-29 22:09:57
【问题描述】:

这是第一个数据框:

  df1 <- data.frame(pid = c(12,13,14,15,16,17,32,44,3,4,59,2,91), name = c(product1,product2,product3,product,product4,product5,product6,product7,product8,product9,product10,product11,product12,product43))

我想提取一个新的 df1 子集,使用 df2 的 pid 作为索引值:

df2 <- data.frame(pid = c(12,13,14,4,2))

子集示例:

  df1 <- data.frame(pid = c(12,13,14,15,16,17,32,44,2,4,59,2,91), name = c(product1,product2,product3,product10,product12))

我该怎么做?

【问题讨论】:

  • df1[df1$pid %in% df2$pid, ] ?

标签: r


【解决方案1】:

不确定您需要什么,因为您的子集数据框示例无效。但是,这可能是您正在寻找的解决方案:

df1 <- data.frame(pid = c(12,13,14,15,16,17,32,44,3,4,59,2,91), 
                 name = c("product1","product2","product3","product4",
                 "product5","product6","product7","product8","product9",
                 "product10","product11","product12","product43"))
df2 <- data.frame(pid = c(12,13,14,4,2))

require(dplyr)
right_join(df1,df2)

结果:

  >right_join(df1,df2)
  Joining, by = "pid"

  pid      name
1  12  product1
2  13  product2
3  14  product3
4   4 product10
5   2 product12

【讨论】:

    猜你喜欢
    • 2021-06-25
    • 1970-01-01
    • 2014-11-29
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-28
    相关资源
    最近更新 更多