r - 在R中;如何将 str_extract 与 mutate 结合使用以基于现有列向数据帧添加新的“标志”列 (T/F)
问题描述
使用 R(在 RStudio 中)。我需要一个新的标志列,指示在我的数据框的一列中命名的药物成分的存在,该成分可能是独立的,也可能是几个成分之一。新列需要在数据框中,因为它将用作关系数据库中的查找表(在一列中具有唯一的键变量)。我怎样才能使用 Str_extract 和 mutate 来完成这个(或者我应该采取另一种方法)?
我有一个 14 列和 400K 加行的数据框。行是个别特定的药品,列描述它们的成分。一栏包含药物的通用名称。此列中的大多数行都有一个药物名称,有些行有多个药物成分,例如对乙酰氨基酚/伪麻黄碱/布洛芬。在数百种不同的药物名称中,我对大约 50 种特定的仿制药感兴趣。例如布洛芬。我将需要一个列来标记通用名称中是否包含特定药物,即具有 TRUE 或 FALSE 值。我需要将此添加到数据框中,因为其他列包含其他特征,包括用于匹配另一个关系数据库中的药物的键。我的想法是使用 str_detect(在 stringr 中)匹配药物名称列中的布洛芬,并在使用 mutate(tidyr,dplyr)创建的新列“Contains_Ibuprofen”中给出值 TRUE 或 FALSE。我怎样才能使用 Str_extract 和 mutate 来完成这个(或者我应该采取另一种方法)?
我不知道如何在带有 mutate 的数据帧上使用 str_detect 来创建新列。还是我应该使用不同的方法?
解决方案
这是一种方法(如果我正确理解了这个问题)
library(tidyverse)
df <- tribble(~columnx, ~generic,
'foo', 'acetaminophen/pseudoephedrine/ibuprofen',
'bar', 'dostinex',
'mike', 'lipator',
'bill', 'cabergoline',
'pete', 'asprin/ibuprofen')
df %>%
mutate(Contains_Ibuprofen = str_detect(generic, 'ibuprofen'))
推荐阅读
- python - 为什么时间模块中的时间函数显示毫秒大于1000,当它可以将其转换为秒时?
- c - 调用 I2C 写入函数时程序冻结
- jquery - 在 jquery 中删除类和添加类
- c# - 在将图像上传到服务器(后端)时收到错误请求,正在使用 xam.plugin.media
- python - django自定义用户模型用户创建问题:权限不起作用
- python - 如何合并 2 个变量以便在使用 Pandas 时呈现标题
- c# - 为什么实体框架中的迁移文件在 up() 和 down() 方法中没有代码?
- javascript - 如何在函数定义中使用没有“this”的 bind() 方法?
- ios - Beta 测试中的应用内购买屏幕不如预期
- rust - 如何在 Rust 中为函数添加状态