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.

¿Cómo recodificar valores de una columna de caracteres en un dataframe?

Pregunta para principiantes: ¿Cuál es una manera sencilla de renombrar una variable en una columna de un dataframe?

Tengo un dataframe llamado “Stuff” con una columna de datos categóricos llamada “Age”, donde una de las variables de datos se llama “Age80+”. He aprendido que R no permite el uso del símbolo “+” en un nombre,

Por ejemplo, Age80+ <- genera un error.

En la columna “Age” hay otras 7 variables numéricas, como “Age18_30”, por lo que no puedo cambiar manualmente los nombres de observación de manera eficiente.

He buscado, pero no he encontrado una manera sencilla de renombrar todas las instancias de “Age80+” a “Age80plus” sin utilizar paquetes complicados como “stringer” o “dplyr”. El dataframe tiene cientos de observaciones con “Age80+”.

Gracias.

He intentado:

Stuff$Age <- gsub("Age80+", "Age80plus", Stuff$Age)

Pero eso cambia “Age80+” a “Age80plus+”, no “Age80plus”.

El cambio deja el símbolo “+”.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Una forma sencilla de cambiar el nombre de una variable de observación en una columna de un dataframe en R es utilizando la función sub. Aquí tienes un ejemplo utilizando el dataframe mencionado:

    “`{r}

    Dataframe de muestra

    Stuff <- data.frame(
    Age = c(“Age18_30″,”Age80+”,”Age31_50″,”Age80+”,”Age51_65″,”Age66_80″,”Age80+”,”Age80+”)
    )

    Cambiar el nombre de la observación

    Stuff$Age <- sub(“\+”,””,Stuff$Age,fixed=TRUE)
    “`

    En este ejemplo, utilizamos la función sub para reemplazar el signo “+” con una cadena vacía (“”). El primer argumento "\\+" representa el carácter “+” en expresiones regulares. El argumento fixed=TRUE le indica a R que utilice este argumento como un carácter normal, y no como una expresión regular. El resultado es un nuevo dataframe con una columna modificada, donde todas las apariciones de “Age80+” han sido reemplazadas por “Age80”.

Comments are closed.