В R; Как использовать str_extract с mutate для добавления нового столбца «flag» (T / F) в dataFrame на основе существующего столбца - PullRequest
0 голосов
/ 17 июня 2019

Использование R (в RStudio).Мне нужен новый столбец флага, указывающий на наличие компонента лекарственного средства, названного в одном столбце моего фрейма данных, где этот компонент может стоять отдельно или быть одним из нескольких компонентов.Новый столбец должен находиться в кадре данных, поскольку он будет использоваться в качестве справочной таблицы (в одной колонке есть уникальная переменная ключа) в реляционной базе данных.Как я могу использовать Str_extract и mutate для достижения этой цели (или я должен использовать другой подход)?

У меня есть фрейм данных из 14 столбцов и 400K строк плюс.Строки представляют собой отдельные конкретные фармацевтические продукты, столбцы описывают их компоненты.Один столбец содержит общие названия лекарств.Большинство строк в этом столбце имеют одно название лекарственного средства, некоторые содержат несколько компонентов лекарственного средства, например, такие как ацетаминофен / псевдоэфедрин / ибупрофен.Меня интересует около 50 конкретных дженериков среди сотен наименований лекарств.Например ибупрофен.Мне понадобится столбец, в котором будет указано, содержится ли конкретное лекарство в родовых названиях, т. Е. Имеет значение ИСТИНА или ЛОЖЬ.Мне нужно добавить это во фрейм данных, потому что другие столбцы содержат другие характеристики, включая ключ для сопоставления препарата в другой реляционной базе данных.Моя мысль состоит в том, чтобы использовать str_detect (в stringr), чтобы сопоставить ибупрофен в столбце названия препарата и дать значение TRUE или FALSE в новом столбце «Contains_Ibuprofen», созданном с помощью mutate (tidyr, dplyr).Как я могу использовать Str_extract и mutate для выполнения этого (или я должен использовать другой подход)?

Я не знаю, как использовать str_detect для фрейма данных с mutate для создания нового столбца.Или я должен использовать другой подход?

1 Ответ

1 голос
/ 18 июня 2019

Вот один из подходов (если я правильно понял вопрос)

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'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...