You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过前缀匹配使用dplyr连接DataFrame?

用dplyr实现前缀匹配的内连接

要完成这个前缀匹配的内连接需求,你可以用dplyr结合stringr工具来实现,具体操作如下:

  1. 先加载所需的R包:
library(dplyr)
library(stringr)
  1. 定义原始数据框:
data <- tibble(
  x = c("ANOTHER", "COMMON", "ZEBRA")
)

selection <- tibble(
  x_prefix = c("A", "B", "CO"),
  type = c("One type", "Other type", "Other type")
)
  1. 执行前缀匹配的内连接逻辑:
answer <- data %>%
  # 先做交叉连接,生成两个表的所有行组合
  cross_join(selection) %>%
  # 过滤出x以对应x_prefix为前缀的行,fixed()确保按固定字符串匹配,避免正则规则干扰
  filter(str_starts(x, fixed(x_prefix))) %>%
  # 保留需求中的目标列
  select(x, type)

运行后得到的answer就是预期结果:

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

如果遇到单个x匹配多个x_prefix的场景(比如x="APPLE"同时匹配前缀"A"和"AP"),可以在过滤后追加group_by(x) %>% slice_max(nchar(x_prefix)),来保留最长的前缀匹配结果,按需调整即可。

内容的提问来源于stack exchange,提问作者pietrodito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 13:05:02