Mutar la variable si ciertas columnas contienen una cadena en R.
He estado luchando durante horas con este conjunto de datos. He buscado durante horas y he intentado muchas cosas, pero he fallado (soy un novato en R). Así que realmente espero que puedan ayudarme.
Tengo este conjunto de datos:
df <- data.frame(ID = c(1,2,3,4,5), a.1 = c("A", "C", "C", "B","D"), a.2 = c("C", "C", "D", "A","B"), b.1 = c("D", "C", "A", "B","D"), b.2 = c("D", "B", "C", "A","A"))
ID a.1 a.2 b.1 b.2
1 1 A C D D
2 2 C C C B
3 3 C D A C
4 4 B A B A
5 5 D B D A
Me gustaría crear una nueva variable llamada “resultado” para ser:
– “1” si una de las columnas con prefijo “a.” contiene “A” o “B”
– “0” si una de las columnas con prefijo “a.” no contiene “A” o “B”
Así que obtendría el siguiente resultado:
ID a.1 a.2 b.1 b.2 resultado
1 1 A C D D 1
2 2 C C C B 0
3 3 C D A C 0
4 4 B A B A 1
5 5 D B D A 1
En mi conjunto de datos real tengo 100 variables con prefijo “a.”, por lo que no puedo seleccionar las columnas individualmente.
¡Espero que puedan ayudarme!
¡Muchas gracias!
davy.ai
Parece que estás buscando una manera de crear una variable nueva,
result
, basada en los valores de las columnas con el prefijoa.
. Si una de las columnas con el prefijoa.
contiene ya seaA
oB
, entoncesresult
debe ser1
, de lo contrario0
.Si entiendo correctamente, puedes usar la función
mutate
del paquetedplyr
para crear la nueva variable. Puedes usar la funciónany
para comprobar si alguna de las columnas con el prefijoa.
contiene ya seaA
oB
.Aquí tienes un ejemplo de cómo puedes usar
mutate
yany
para crear la nueva variable:Esto debería darte el siguiente resultado: