Для функции карты Loop / Purrr для создания новых переменных на основе сохраненных значений в R - PullRequest
0 голосов
/ 27 марта 2020

У меня очень сложный вопрос, и я не смог найти вопрос, достаточно похожий, чтобы разобраться сам. Из предыдущего опыта всегда есть решение, но я просто не нашел его после долгих поисков l oop вопросов и потенциально мурлыкающих вопросов карты.

Я занимаюсь исследованием данных о состоянии здоровья. У меня есть основной список уникальных кодов ICD, используемых для классификации диагнозов пациентов от начала до конца sh - есть тысячи кодов. Я хочу добавить к этому фрейму данных переменные, которые определяют конкретные c условия, которые я изолирую от наборов данных. Например, у меня есть все диагнозы под солнцем в рамке основных данных, и у меня есть определенное определение термина диабет. Я хочу иметь возможность l oop с помощью нескольких заданных определений терминов (диабет, сердечная недостаточность, болезни почек и т. Д. c.), Сохраненных в виде значений, а затем создать новый столбец в моем фрейме данных основного списка с единицами для части определение и 0 для не часть определения. Например, я хочу использовать сохраненные значения для диабета (1, 2, 3, 4, для простоты), а затем в любое время есть 1, 2, 3 или 4 в столбце основного списка, я хочу 1 в столбец диабета, и в любое время есть значение, которое не равно 1, 2, 3, 4, в столбце основного списка я хочу 0. Проблема в том, что у меня есть сотни определенных условий и тысячи потенциальных кодов, что означает, что мне, безусловно, нужно сделать это программно (особенно, если мне нужно скорректировать определение термина и переопределить его).

Пока у меня есть следующее:

library(dplyr)

terms <- c('acute_kidney_failure', 'acute_limb_ischemia')

for(i in terms){

  definitions_master.df <- ontology_master.df %>%

    mutate(i = if_else(ONTOLOGY_CODE %in% i, 1, 0))

}

Я упростил это здесь, на цель, но есть много, много терминов. Эти термины имеют сохраненные значения, такие как sharp_kidney_failure <- c (1,2,3), sharp_limb_ischemia <- c (4,5,6). В идеале новый столбец должен иметь то же имя, что и термин во фрейме данных, так как я хочу иметь возможность идентифицировать диагноз, и я не хочу go из-за хлопот переименования сотен терминов, если это может помочь . </p>

Я прочитал много аккаунтов, которые ненавидят за циклы, и я ни в коем случае не привязан к этому, но это единственное, что я могу сделать. В конце я хочу иметь возможность ссылаться на эту основную таблицу определений для создания переменных в определенных c наборах данных, и я буду использовать ее снова и снова. Я в этом надолго, поэтому я хочу сделать это программно, элегантно и воспроизводимо. Я готов изучать любые новые необходимые пакеты или функции, но мне нравится оставаться в тидиверсе, если я могу, потому что это вряд ли сильно нарушит мой код. Кто-нибудь может помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...