与多列进行字符串匹配以查找 r 中可能的结果

2024-03-03

我有两个数据框 DF1 和 DF2。在 DF1 中,我有不同的字符串组合,在 DF2 中,我有不同字符串组合的结果。我需要将 DF1 与 DF2 中的字符串或字符串组合进行匹配,并根据字符串匹配创建多个结果列作为结果数据帧 DF_Result。

A=c("babypink","red,blue","purple,white","skyblue","pink,violet,green","silver,white,grey")

DF1 <- data.frame(A)

P=c("abcd","qwert","wxyz","efgh")
Q=c("red,blue","red","orange,yellow","white,black")
R=c("pink","violet,green","purple,white","golden")
S=c("silver,white","orange","grey","maroon")
T=c("black,white","skyblue","babypink","green")
U=c("yellow","blue","black","white")
DF2=data.frame(P,Q,R,S,T,U)

X=c("babypink","red,blue","purple,white","skyblue","pink,violet,green","silver,white,grey")
R1=c("wxyz","abcd","wxyz","qwert","abcd","abcd")
R2=c("","qwert","efgh","","qwert","wxyz") 
R3=c("","","","","efgh","efgh") 
DF_Result=data.frame(A,R1,R2,R3)


这是一个可能的tidyverse解决方案。它得到的答案类似于你的DF_Result但不完全一样(“紫色,白色”将“abcd”与“银色,白色”和“黑色,白色”匹配)。

数据框更容易以长形式合并(使用pivot_longer)。您可以使用separate_rows将逗号分隔的值放入单独的行中。

library(tidyverse)

DF2_long <- DF2 %>%
  pivot_longer(cols = -P) %>%
  separate_rows(value)
  
DF1 %>%
  mutate(value = A) %>%
  separate_rows(value) %>%
  left_join(DF2_long) %>%
  select(-name, -value) %>%
  group_by(A) %>%
  distinct(A, P) %>%
  mutate(Count = row_number()) %>%
  pivot_wider(id_cols = A, names_from = Count, values_from = P, names_prefix = "R")

Output

  A                 R1    R2    R3   
  <chr>             <chr> <chr> <chr>
1 babypink          wxyz  NA    NA   
2 red,blue          abcd  qwert NA   
3 purple,white      wxyz  abcd  efgh 
4 skyblue           qwert NA    NA   
5 pink,violet,green abcd  qwert efgh 
6 silver,white,grey abcd  wxyz  efgh
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与多列进行字符串匹配以查找 r 中可能的结果 的相关文章

  • 如何使ggplot2图形与R中的黑白打印(复印友好)兼容?

    有没有办法转换ggplot2绘制成黑白版本而不重写大部分代码 以便黑白版本保持可读性 例如 要替换scale fill gradient with scale fill grey 或者自动进行适合复印的转换 如网站http colorbre
  • 字符串的“相关矩阵”。名义数据的相似度

    这是我的数据框 df store 1 store 2 store 3 store 4 0 banana banana plum banana 1 orange tangerine pear orange 2 apple pear melon
  • R 在 readHTMLTable 调用维基百科时崩溃

    尝试抓取维基百科页面 类似的事情我之前已经做过很多次了 library XML myURL lt http en wikipedia org wiki List of US Open MenUs Singles champions y lt
  • 使用整洁的评估语义通过字符向量进行 group_by

    我曾经这样做过 使用group by library dplyr group by lt c cyl vs mtcars gt group by dots group by gt summarise gear mean gear but n
  • 使用正整数参数优化

    我需要解决一个需要比较具有相同列数的两个矩阵的问题 其中之一被操纵 直到获得最佳匹配 我对两个矩阵之间的差异进行评分的方式非常复杂 我仍然需要最终确定它 目前我真正感兴趣的是找到一种仅适用于正整数的搜索 优化算法 我创建了一个简单的示例 其
  • 如何在 R 中使用相对路径从 mac 上的目录读取数据?

    我正在编写需要同时适用于 Mac 和 Windows 用户的代码 所有用户的计算机上都有 google 驱动器目录的本地副本 我有一段代码可以自动将工作目录设置为源文件位置 我们将此目录称为 directory1 在directory1 中
  • 非等值连接一步添加 data.table 中范围表的所有列

    我确信我忽略了显而易见的事情 但我找不到一种方法来连接 查找 表的所有列data table非等值连接一步到位 我看了阿伦的演讲 https github com Rdatatable data table wiki talks ArunS
  • 运行命令后存在来自 rocker/r-ver:4.0.4 的容器

    这是我的 Dockerfile FROM rocker r ver 4 0 4 在 cmd 中我构建 docker build t myfolder myimage 它塑造的形象很好 然后我跑 docker run myfolder myi
  • 格式化 mlogit 的数据

    为了通过 mlogit 进行多项 Logit 分析 我正在经历一段艰难的时间来整理我的数据集 我的数据集可从url https raw githubusercontent com sjkiss Survey master mlogit ou
  • '%>%' 没有可见的全局函数定义

    我正在尝试构建一个 devtools 包 并且我需要在我的代码中使用此循环 for i in 1 length idk tritemp intetemp intetemp path in idk i tritemp tritemp gt g
  • 更改 RMarkdown 中的块背景颜色

    我希望某个代码块以不同的颜色 例如红色 突出显示 以表明这是不好的做法 如果我使用的是 Rnw 我可以添加块选项background red 并得到我想要的 但这似乎不起作用 Rmd 我的猜测是 我需要制作一个自定义 css 样式表 尽管我
  • 计算行的排名

    我想根据一个字段对用户 ID 进行排名 对于相同的字段值 排名应该相同 该数据位于 Hive 表中 e g user value a 5 b 10 c 5 d 6 Rank a 1 c 1 d 3 b 4 我怎样才能做到这一点 可以使用ra
  • 如何使用aaply并保留数组中的维度顺序?

    我有一个 3 维数组 我想将函数应用于第三维并返回一个数组 我很高兴 plyr aaply 几乎能满足我的要求 但是它会交换我的数组的尺寸 文档告诉我它是幂等的 这 在我查找之后 让我认为结构应该保持不变 这是一个带有恒等函数的可重现示例
  • 将逻辑回归从 R 迁移到 rpy2

    我正在尝试使用 ryp2 进行逻辑回归 我设法执行它 但不知道如何从结果中提取系数和 p 值 我不想在屏幕上打印这些值 而是创建一个函数来独立使用它们 import rpy2 robjects as ro mydata ro r data
  • R模糊字符串匹配根据匹配的字符串返回特定列

    我有两个大型数据集 一个大约有 50 万条记录 另一个大约有 7 万条记录 这些数据集有地址 我想匹配较小数据集中的任何地址是否存在于大数据集中 正如您所想象的那样 地址可以用不同的方式和不同的情况 拼写等来书写 此外 如果只写到建筑物级别
  • R randomForest - 如何使用“getTree”树进行预测

    背景 我可以在 R 中创建一个随机森林 set seed 1 library randomForest data iris model rf lt randomForest Species data iris importance TRUE
  • 在 tidycensus 中使用 purrr() 而不是 lapply 任意城市/县对?

    我有一个巨大的 lapply 正在运行来下载数据文件 但看起来很笨拙 但 mapply 似乎不对 因为我不想要所有州 县的组合 我听说过关于 map 的好消息 任何人都可以提供一个示例 说明如何在以下代码中使用 purrr 命令 map l
  • 如何在 R 组内的两个变量的组合上选择具有特定值的行

    这是我之前提出的 R 问题的扩展 如何在R中选择组内具有特定值的行 https stackoverflow com questions 55853841 how to select rows with certain values with
  • 是否可以在 R 中为 data.frame 命名别名

    使用某些数据标准时 使用多种方法来查看 data frame 的列会更简单 作为一个具体示例 在使用 SDTM 数据进行临床试验时 每种数据类型 如实验室或生命体征 都有一列时间点 实验室名称为 LBPT 生命体征名称为 VSTPT 理想情
  • 相当于 Rcpp 中的 'which' 函数

    我是 C 和 Rcpp 的新手 假设我有一个向量 t1 lt c 1 2 NA NA 3 4 1 NA 5 我想获得 t1 的元素索引NA 我可以写 NumericVector retIdxNA NumericVector x Step 1

随机推荐