如何从字符串中查找特定单词并按这些单词合并变量[关闭]

2023-12-29

假设我有一个数据“A”,例如:

Disease_name
(J189)Pneumonia, unspecified
(R51)Headache
(M4806)Spinal stenosis, lumbar region
(M512)Other specified intervertebral disc displacement
(C187)Sigmoid colon
(N201)Calculus of ureter
(C189)Colon, unspecified
(S0600)Concussion, without open intracranial wound
(C73)Malignant neoplasm of thyroid gland
(C509)Breast, unspecified
(K746)Other and unspecified cirrhosis of liver
(B181)Chronic viral hepatitis B without delta- agent
(R42)Dizziness and giddiness

另一个数据集 B 如下:

parts         key
Chest       pneumonia
Head        headache
Abdominal   spinal
Abdominal   intervetebral
Abdominal   colon
Abdominal   ureter
Abdominal   colon
Head        concussion
Neck        thyroid
Chest       breast
Abdominal   liver
Abdominal   hepatitis
Head        giddiness

我想找到的话B$key from A&disease_name并通过那些匹配的关键字将 A 合并到 B 以分配B$parts to A&disease_name.

我怎样才能在 R 中做到这一点?


欢迎来到SO!这个问题对我来说已经足够清楚了。这是一个tidyverse解决方案。

首先读取一些数据:

library(dplyr)

tmp <- data.table::fread(
"Disease_name
(J189)Pneumonia, unspecified
(R51)Headache
(M4806)Spinal stenosis, lumbar region
(M512)Other specified intervertebral disc displacement
(C187)Sigmoid colon
(N201)Calculus of ureter
(C189)Colon, unspecified
(S0600)Concussion, without open intracranial wound
(C73)Malignant neoplasm of thyroid gland
(C509)Breast, unspecified
(K746)Other and unspecified cirrhosis of liver
(B181)Chronic viral hepatitis B without delta- agent
(R42)Dizziness and giddiness",
sep = ""
)


tmp2 <- data.table::fread(
  "parts  key
Chest   pneumonia
Head    headache
Abdominal   spinal
Abdominal   intervertebral
Abdominal   colon
Abdominal   ureter
Abdominal   colon
Head    concussion
Neck    thyroid
Chest   breast
Abdominal   liver
Abdominal   hepatitis
Head    giddiness"
)

然后我们进行连接:

result <-
  tmp %>%
  mutate(key = gsub(paste0(".*(", paste(tmp2$key, collapse = "|"), ").*"),
  "\\1",
  tolower(tmp$Disease_name))) %>%
  left_join(tmp2)
#> Joining, by = "key"

导致:

result
#>                                              Disease_name            key
#> 1                            (J189)Pneumonia, unspecified      pneumonia
#> 2                                           (R51)Headache       headache
#> 3                   (M4806)Spinal stenosis, lumbar region         spinal
#> 4  (M512)Other specified intervertebral disc displacement intervertebral
#> 5                                     (C187)Sigmoid colon          colon
#> 6                                     (C187)Sigmoid colon          colon
#> 7                                (N201)Calculus of ureter         ureter
#> 8                                (C189)Colon, unspecified          colon
#> 9                                (C189)Colon, unspecified          colon
#> 10     (S0600)Concussion, without open intracranial wound     concussion
#> 11               (C73)Malignant neoplasm of thyroid gland        thyroid
#> 12                              (C509)Breast, unspecified         breast
#> 13         (K746)Other and unspecified cirrhosis of liver          liver
#> 14   (B181)Chronic viral hepatitis B without delta- agent      hepatitis
#> 15                           (R42)Dizziness and giddiness      giddiness
#>        parts
#> 1      Chest
#> 2       Head
#> 3  Abdominal
#> 4  Abdominal
#> 5  Abdominal
#> 6  Abdominal
#> 7  Abdominal
#> 8  Abdominal
#> 9  Abdominal
#> 10      Head
#> 11      Neck
#> 12     Chest
#> 13 Abdominal
#> 14 Abdominal
#> 15      Head

Created on 2018-09-28 by the reprex package https://reprex.tidyverse.org (v0.2.1)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从字符串中查找特定单词并按这些单词合并变量[关闭] 的相关文章

  • R ggplot2 比例 alpha 离散以显示在图例中

    我正在尝试绘制两个因素 压力和性别 的图 并使用 alpha 值来传达性别 这是我的代码和结果图 ggplot subset df zfish data overall long day day 01 measure distance fr
  • R - 按列比较两行并将结果写入表中

    我是 R 新手 可能我的问题的解决方案非常简单 但目前我无法实现 我想按列比较数据框中的行 每列中的数据是一个字母 核苷酸碱基 seq1 A C T G T seq2 A C G G G seq3 A G G C A 我想按列比较数据集中的
  • 如何使用 formattable 折叠表中的行值组?

    我有兴趣使用以下领域的工具formattableR 包 但我只想在表中显示有更改的地方 也就是说 我想要在kableExtra包通过collapse rows 功能 例如 使用kable and kableExtra 我可以做这个 libr
  • 通过 rpy2 将 numpy 数组传递给 R 时出现不一致数组

    我正在尝试将 numpy 数组传递到 R 中的 GAMLSS 包 import numpy as np import rpy2 robjects as robjects from rpy2 robjects import numpy2ri
  • 如何在 purrr::map_df 之后使用映射向量添加列

    我使用 mtcars 数据集作为示例来说明我的问题 我对每种气缸类型进行了线性回归 并使用 map df 将所有模型结果放在一起 下面的代码和输出 我想要做的是添加另一列名为 圆柱体 4 4 6 6 8 8 我怎样才能在map df中做到这
  • 如何强制geom_point在R中显示比例大小?

    我的数据如下 抱歉有点大 test dput 我还有一个绘制这些数据的代码 这里的问题是它没有给我比例大小read counts value多变的 我怎样才能解决这个问题 谢谢 my code p ggplot test dput aes
  • 从字符串向量中删除方括号

    我有一个字符向量 其中每个元素都括在括号中 我想 去掉括号 只剩下字符串 所以我尝试 n c Dave Tony Sara paste n sep 不幸的是 由于某种原因这不起作用 在使用相同的代码之前我已经执行了相同的任务 并且不确定为什
  • 使用 mutate_if 和 Replace_na 替换数字列上的 NA

    我想使用某些变体替换数字列中的 NAmutate if and replace na如果可能的话 但无法弄清楚语法 df lt tibble first c a NA b second c NA 2 NA third c 10 NA NA
  • 如何计算R中的月份差异

    我有格式的日期2015 03 即年月 现在我想计算两个日期之间的月份差异 示例 日期之间的差异2015 03 and 2014 12应该是 3 或 4 因为 12 月到 3 月是 3 个月或 4 个月 这取决于我们是否考虑 12 月 你可以
  • kableExtra:垂直对齐在多列 PDF 输出中不起作用

    我想将 kableExtra 表中的所有列对齐到顶部 这valign top 选项似乎并不能解决这里的问题 此外 由于某种原因 第三列不知何故被放在第二列之上 并且引用也不起作用 下面的MWE是基于这个相关的SO问题 它只需要2列 kabl
  • iGraph + Plotly 创建随机连接

    我正在尝试使用示例代码在这里iGraph网络图在plotly https plot ly r network graphs new to plotly和我自己的鞋拔子data frames而不是使用示例空手道俱乐部数据 当绘制图表时 它似乎
  • 使用 R.Net 版本 1.5.5 创建 REngine 实例

    我正在尝试创建一个 Hello World 示例R Language using R Net版本1 5 5 从 NuGet 加载 不幸的是 我见过的在线示例都不起作用 这就是我所做的 已安装Microsoft R Open 3 2 4 增强
  • 具有不同侧边栏的选项卡

    我正在尝试创建一个带有多个选项卡的闪亮应用程序 每个选项卡都有自己的侧边栏 我还没能让它发挥作用 任何有关错误的帮助将不胜感激 下面是代码 ui lt fluidPage titlePanel Hi sidebarLayout positi
  • R 中的威布尔分布 (ExtDist)

    有人使用威布尔分布遇到过问题吗 扩展包 https www rdocumentation org packages ExtDist versions 0 6 3 来自文档 https www rdocumentation org packa
  • 为什么for循环只显示最后一个循环的结果

    我有这个样本矩阵 X1 X2 X3 X4 1 F F F F 2 C C C C 3 D D D D 4 A A A A 我正在尝试使用 for 循环来获取每列中唯一音高的数量 我正在尝试这样做 y lt read csv file fra
  • 绘制 grobs 列表

    披露 我不确定如何为这个问题制作一个可重现的例子 我正在尝试使用以下方法绘制 grobs 列表gridExtra包裹 我有一些代码看起来像这样 Make Graphic Objects for Spec and raw traces for
  • Leaflet R 闪亮:选择和缩放

    我正在开发一个带有闪亮和传单的工具 我希望当客户点击变量时 参见 UI 代码 例如 NE 地图会转到另一个视图 例如纯传单中的这样 L easyButton strong NE strong function zoomTo setView
  • R 中的上标

    我正在尝试输出一个 xlsx 文件 其列名具有上标文本 例如 holdings data frame x rep 12 4 y rep 14 4 colnames holdings c Name RankTM 但带有 TM 上标 有人能帮忙
  • 并行化随机森林

    通过搜索和询问 我发现了许多可以用来利用服务器所有核心的软件包 以及许多可以进行随机森林的软件包 我对此很陌生 并且在并行随机森林训练的所有方法中迷失了方向 您能否就使用和 或避免它们中的每一个或它们的某些特定组合 以及有或没有caret
  • 测试包的反向依赖关系的最用户友好的方法是什么?

    测试反向依赖是一件痛苦的事情 我发现可用的实现有问题 例如当我跑步时devtools revdep check I see Reverse dependency checks for

随机推荐

  • Apple ID 可从 Cocoa Touch 内的应用程序下载中检索

    你好 我正在开发一个 iPhone 应用程序 每次下载都需要维护一个唯一的标识符 有没有办法检索用于下载应用程序的 Apple ID 或其他标识符 我可以使用该标识符将所有设备与该下载链接到远程数据库 服务 基本上我想要一个自定义生成的数据
  • Git 递归地将遥控器添加到子模块

    我的机器上有一个 git 存储库 地址为 path to repo 其中包含几个子模块 path to repo submoduleA and path to repo foo bar submoduleB 由于我无法更改工作流程 git
  • Node.js - 注册时发送电子邮件

    我有带有单个电子邮件字段的注册表单 当用户输入电子邮件时 我需要发送注册链接 我见过this https github com alexyoung nodepad blob master app js带有注册表单的 Node js 示例 但
  • 如何将角度应用程序嵌入到另一个应用程序中?

    我的团队开发了一个 Angular 5 应用程序 该应用程序已经投入生产一段时间了 但我们最近的任务是让该应用程序在公司拥有的其他 3 个站点上运行 一个站点是使用 Angular6 构建的 SPA 另一个站点也是 SPA 但使用 Angu
  • 单独的 DataGrid 行可见性

    我有一个WPFDataGrid绑定到一个集合Entity Framework父 EF 对象内部的对象 大致如下
  • jQuery text() 调用在 Firefox 中保留换行符,但在 IE 中则不然

    我正在做 alert div text 在这样的事情上 div lt div gt Some text lt div gt div 为什么要转义内容 因为它有时格式错误 我不希望它干扰或破坏文档的其余部分 在 FF 中它显示保留换行符 在
  • 如何在计划查询中显示和更改用户

    Google Cloud Platform 中的一些计划查询突然不再运行 并显示消息 访问被拒绝 用户没有表的 bigquery tables get 权限 首先 是否可以查看计划查询在哪个用户下运行 第二 可以更改用户吗 谢谢 西尔万 我
  • Rails 5 中具有多态关联的嵌套属性

    我创建了一个Address具有多态关联的模型 我试图通过客户端模型的嵌套属性保存到它 但我得到Address addressable must exist in the client errors Models class Client l
  • Android如何使用覆盖图在MapView中徒手绘制绘画?

    在我的应用程序中 在地图视图上徒手绘制油漆 但搜索了大量信息 最终从地图视图上绘制的矩形形状中获得 但我想代替像之字形那样徒手绘制矩形 如何更改我的代码请提供任何帮助 MapOverlay java public class MapOver
  • 如何将 IPA 安装到 iOS 设备中,例如用于临时分发

    我一直在尝试安装一个 ipa使用 Ad Hoc 分发将文件写入我的物理 iOS 设备 无需上传到 App Store 或 TestFlight 但不幸的是我遇到了一些错误 例如 This app could not be installed
  • will_paginate JSON 支持吗?

    我想知道是否有人可以告诉我 will paginate 是否可以开箱即用地支持 JSON 或者是否必须破解 我想将页面数据添加到 JSON 响应 同时 will paginate 管理分页 内容如下 posts Post paginate
  • 我应该先学习 Perl 5 OO 还是 Moose? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对 Perl 编程还比较陌生 但我知道 Perl 5 OO 基本上是如何工作的 然而 我从未使用 Perl 5 OO 创建过任何项目 所以我很
  • 将键盘焦点设置为 YouTube 嵌入

    我正在尝试找到一种方法让键盘聚焦在页面中的 YouTube 播放器上 例如 这可以方便地使用空格键来播放 暂停视频 这是一个例子 测试嵌入键盘焦点 CodePen http codepen io jifarris pen qOGoVG 事实
  • 将元组列表写入txt文件

    考虑这个元组列表 list 0 0 0 0 0 00249999994412065 509 707885742188 0 00499999988824129 1017 52648925781 0 0087500000372529 1778
  • Linux上的Jmeter分布式测试

    我正在尝试使用 apache jmeter 2 9 在 Linux 服务器上进行分布式测试 默认端口 1099 已被使用 由jboss 我把端口改成1097 我现在在一台机器上启动jmeter server并在单台机器上开始测试 jmete
  • Java 线程:如何为线程实现可运行的工作

    我知道如果你想要线程 你可以扩展线程或在java中实现可运行的多线程 但是为什么java要实现线程的接口呢 使 java 线程工作的可运行接口的重要性是什么 Java 的接口是否从某些东西扩展而来 唯一特别的是Runnable界面就是它是什
  • Bootstrap 3 垂直附加菜单示例如文档中所示 - 调整大小问题

    我正在尝试使用 Bootstrap 3 垂直滚动间谍 但是我找不到源代码中包含的任何示例 我继续从这里删除文档页面http getbootstrap com javascript http getbootstrap com javascri
  • 使用 JavaScript、HTML5 或任何跨平台语言将数据写入 USB HID(支持 Android)

    我用 HTML5 和 JavaScript 编写了一个 UI 我选择这个实现是为了可以在 Android Chrome 和 Android Chrome 之间共享相同的代码Windows 8 https en wikipedia org w
  • Selenium - 等到元素不可见

    在下面的代码中 我尝试等待直到元素可见 var wait new WebDriverWait Driver Instance TimeSpan FromSeconds 10 wait Until ExpectedConditions Ele
  • 如何从字符串中查找特定单词并按这些单词合并变量[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 假设我有一个数据 A 例如 Disease name J189 Pneumonia unspecified R51 He