假设我有这些数据:

data <- tibble(
  x = c("ANOTHER", "COMMON", "ZEBRA")
)

我想要加入这个数据框架,并提供这个:

编辑:前缀没有固定长度

selection <- tibble(
  x_prefix = c("A", "B", "CO"),
  type = c("One type", "Other type", "Other type")
)

我想使用xx_prefix列进行内部连接,如果x_prefixx的前缀,则保留一行.

预期的答案是:

answer <- tibble(
  x = c("ANOTHER", "COMMON"),
  type = c("One type", "Other type")
)

如何使用dplyr做到这一点?

推荐答案

你可以用str_detect作为匹配函数来做fuuzy_inner_join.符号"^"来自regex,意思是字符串的开始,因此我们需要将其paste转换为您的模式,以便只匹配以x_prefix开头的字符串.

library(fuzzyjoin)
library(tidyverse)

fuzzy_inner_join(data, selection, by = c("x" = "x_prefix"), 
                 match_fun = \(x, y) str_detect(x, paste0("^", y))) |> 
  select(-x_prefix)

# A tibble: 2 x 2
  x       type      
  <chr>   <chr>     
1 ANOTHER One type  
2 COMMON  Other type

R相关问答推荐

根据shiny 应用程序中的数字输入更改图标 colored颜色

MCMC和零事件二元逻辑回归

大规模重新标记haven标签数据

如何从R中的字符串元素中减go 一个数字?

在for循环中转换rabrame

如何直接从R中的风险分数计算c指数?

如何在geom_col中反转条

将文件保存到新文件夹时,切换r设置以不必创建目录

在ggplot2中更改小提琴情节的顺序

在R中使用Scale_y_Break后更改y轴标签

使用`Watch()`和`renderUI()`时,不再满足仍出现在SHILINY AFTER条件中的条件输入

根据另一列中的值和条件查找新列的值

'使用`purrr::pwalk`从嵌套的嵌套框架中的列表列保存ggplots时出现未使用的参数错误

解析嵌套程度极高的地理数据

以不同于绘图中元素的方式对GG图图例进行排序

计算Mean by分组和绑定到R中的数据集

数据集上的R循环和存储模型系数

整理曲线图、曲线图和点图

注释不会绘制在所有ggplot2面上

R,将组ID分配给另一个观测ID变量中的值的组合