r - 如果两列组合与其他两列完全匹配,则对数据框进行子集化

标签 r

我有类似的数据

x1 <- data.frame(state = c("FL","FL","TX","TX"), county = c("Duval","Columbia","Dallam","Dimmit"))
x2 <- data.frame(state = c("FL","FL","FL","TX","TX","TX"), county = c("Duval","Columbia","Pinellas","Dallam","Dimmit","Duval"), UR = c(4,5,7,4,6,3))

x3 <- subset(x2, county %in% x1$county & state %in% x1$state)    

我想要的结果是 x1 中的 4 个县与 x2 中指定的 UR 相匹配。我的方法并没有消除在不同州出现的同名县。那么是否有一个选项可以让我仅在州+县组合匹配时进行过滤?

最佳答案

您正在寻找的是左连接:

> library(dplyr)
> left_join(x1, x2, by = c('state', 'county'))
  state   county UR
1    FL    Duval  4
2    FL Columbia  5
3    TX   Dallam  4
4    TX   Dimmit  6

或者使用来自基础 R 的 merge:

> merge(x1, x2, all.x = T)
  state   county UR
1    FL Columbia  5
2    FL    Duval  4
3    TX   Dallam  4
4    TX   Dimmit  6

关于r - 如果两列组合与其他两列完全匹配,则对数据框进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52116558/

相关文章:

r - R 中的双 For 循环

r - 从数据框中的奇数列中减去偶数列

r - "Split"在 plotly 中按类别向上

r - 如何使用 dplyr 对列进行范围分组?

r - bnlearn 的并行化(使用并行包)

R - 将数据帧写入/读取到文件,包括属性

r - 如何定义与原始函数同名的 S3 泛型?

r - 为 R 构建 MXNET 库

regex - R 中的 gsub 跨多行(dotall)

c++ - 将 NumericMatrix 与 Rcpp 连接起来