Я работаю с данными о здравоохранении, которые имеют разные части тела и радиологические тесты в качестве столбцов. Ниже приведен снимок кадра данных -Преобразование имен столбцов в значения строк на основе условных флагов
loc_brain loc_bone loc_pelvis mod_ct mod_xray
0 1 1 0 1
1 1 0 1 0
0 0 1 1 1
Все столбцы, начиная с «LOC» флаг части тела. Точно так же столбцы, начиная с «мод» помечать радиологические испытания
Идея заключается в том, чтобы создать две новые колонки под названием расположение и модальности, которые должны следовать ниже шаблон
loc_brain loc_bone loc_pelvis mod_ct mod_xray location modality 0 1 1 0 1 bone pelvis xray 1 1 1 1 1 brain bone pelvis ct xray 0 0 1 1 1 pelvis ct xray
выход Если «LOC «столбцы помечены 1, то новый столбец местоположения будет иметь имя частей тела. То же самое относится к столбцам «mod».
Способ, которым я подходил к этой проблеме, заключался в использовании dplyr и рассмотрении каждой комбинации флагов и заполнении значений местоположения и модальности.
input_df$location<-""
input_df$modality<-""
input_df <- input_df %>%
mutate(location= replace(location,(loc_bone==1 & loc_pelvis==1),"bone pelvis")) %>%
mutate(modality= replace(modality,mod_xray==1, "xray"))
- Есть около миллиона строк и 65 столбцов частей тела и испытаний.
- Поиск всей комбинации и мутации каждой комбинации является беспорядочным. Есть ли способ автоматизировать этот подход, используя dplyr или base R?
Ниже приведен воспроизводимым пример кадра входных данных -
loc_brain<-c(0,1,0)
loc_bone<-c(1,1,0)
loc_pelvis<-c(1,0,1)
mod_ct<-c(0,1,1)
mod_xray<-c(1,0,1)
input_df<-as.data.frame(cbind(loc_brain,loc_bone,loc_pelvis,mod_ct,mod_xray))
это работает но для обработки данных требуется некоторое время. – x1carbon