es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Reemplaza varios valores similares en una columna en R.

Tengo un marco de datos con información anonimizada que se ve así:

Género Edad Puntuación
Hombre 2 7
Hombre 6 1
Hombre 5 5
Hombre 3 9
Mujer 9 11
Mujer 12 11
Mujer 6 11

Me gustaría reemplazar todos los 2 por “5 años” y todos los 3 por “6 años” y así sucesivamente.

Puedo usar esto:

data$Edad[data$Edad ==2] <- “5 años”

pero tengo datos que van desde los 5 años hasta los 25 años, y repetir eso 20 veces no es precisamente atractivo.

Me gustaría una función que itere desde 2 hasta 22.

¿Existe una forma más sencilla de hacer esto?

Gracias

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, hay una manera más fácil de hacer esto.

    Puedes crear una tabla de búsqueda que asigna a cada valor de edad el texto de reemplazo deseado, y luego usar la función match() para buscar el valor de reemplazo correspondiente para cada valor de edad en el marco de datos. Aquí tienes un ejemplo de código:

    # crear tabla de búsqueda
    age_lookup <- setNames(paste0(seq(2, 22), " años"), seq(2, 22))
    
    # reemplazar edades en el marco de datos usando la tabla de búsqueda
    data$Age <- age_lookup[match(data$Age, names(age_lookup))]
    

    Este código crea un vector nombrado (age_lookup) que asigna cada valor de edad de 2 a 22 al texto de reemplazo deseado. La función match() luego busca el texto de reemplazo para cada valor de edad en el marco de datos, y el resultado se asigna de nuevo a la columna Age del marco de datos. Este enfoque es mucho más eficiente que escribir manualmente 20 sentencias de reemplazo.

Comments are closed.