¿Existe un bucle para mutar una nueva columna basada en varias columnas ascendentes existentes con valores ascendentes?
Mi conjunto de datos se ve algo así:
med_1_atc med_2_atc med_3_atc
N06AX07 N06AX07 N06AX07
N06AX07
N06AX09 N06AX07 N06AG07
N06AD07
M06AX07
D06FX07
L06TX07 N06AX07 N06AX07
Quiero crear una nueva variable med_use
que tenga la etiqueta 1
si alguna variable que termine con _atc
tiene un código que comienza con NO6A
.
Debería verse algo así:
med_1_atc med_2_atc med_3_atc med_use
N06AX07 N06AX07 N06AX07 1
N06AX07 1
N06AX09 N06AX07 N02BE07 1
N06AD07 1
M06AX07
D06FX07
L06TX07 N06AX07 1
He utilizado el siguiente código:
df <- mutate(df,
med_use = case_when(
ends_with("_atc", "NO6A") ~ 1,
TRUE ~ NA_real_
))
davy.ai
Para crear una nueva variable
med_use
que etiquete como1
si alguna variable que termina con_atc
tiene un código que comienza conN06A
, puedes usar el siguiente código en tidyverse:En este código, primero creamos un dataframe utilizando los mismos datos proporcionados en la pregunta. Luego, utilizamos la función
mutate()
para crear una nueva variablemed_use
. Hacemos esto utilizando la funciónifelse()
, que verifica si el patrón^N06A
(cualquier cadena que comience conN06A
) existe en algún nombre de columna que termine con_atc
. Si existe, asignamos1
amed_use
, y si no existe, asignamosNA
. Finalmente, almacenamos este dataframe actualizado endf
. El dataframe resultante tendrá una variablemed_use
que etiqueta como1
si alguna de las variables que terminan con_atc
tiene un código que comienza conN06A
.