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.

¿Pregunta sobre cómo eliminar ciertas piezas de información en celdas en un dataframe de R?

Tengo un df en R que contiene datos sobre el comportamiento de voto de los partidos políticos en la Duma rusa. Ver la foto adjunta. ¡Haz clic aquí para ver la foto!

Cada columna actualmente contiene el porcentaje y el número de votos. Por ejemplo, en la primera fila de la primera columna, UR_yes, vemos 95.8% y 228 гол. (es decir, 228 votos en inglés). En cada columna, quiero obtener solo la cifra numérica sin “гол”. Por lo tanto, cada celda debería contener solo un número. Usando la primera columna como ejemplo, esto se vería como 228 en la primera celda, 234 en la segunda, 235 en la tercera, y así sucesivamente. Estoy tratando con muchas entradas (~15,000 en 15 df separados), por lo que editar esto manualmente en Excel sería difícil. ¿Hay alguna manera de automatizar este proceso en R? Cualquier consejo sería apreciado.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de automatizar este proceso utilizando R. El primer paso es eliminar ” гол.” de cada celda en el dataframe. Esto se puede lograr utilizando la función gsub() para sustituir ” гол.” con una cadena vacía. Por ejemplo, para eliminar ” гол.” de la primera columna, se utilizaría el siguiente código:

    df$UR_yes <- gsub(" гол.", "", df$UR_yes)
    

    Para aplicar esto a todas las columnas en el dataframe, puedes usar un bucle que itere sobre cada columna y aplique la función gsub(). Aquí tienes un ejemplo:

    for (col in colnames(df)) {
      df[[col]] <- gsub(" гол.", "", df[[col]])
    }
    

    Este bucle iterará sobre cada columna en el dataframe y aplicará la función gsub() para eliminar ” гол.” de cada celda.

    Una vez que se haya hecho esto, puedes convertir los valores en cada celda a numéricos utilizando la función as.numeric(). Por ejemplo, para convertir la primera columna a numérica, utiliza el siguiente código:

    df$UR_yes <- as.numeric(df$UR_yes)
    

    Para aplicar esto a todas las columnas en el dataframe, puedes usar otro bucle que itere sobre cada columna y aplique la función as.numeric(). Aquí tienes un ejemplo:

    for (col in colnames(df)) {
      df[[col]] <- as.numeric(df[[col]])
    }
    

    Este bucle iterará sobre cada columna en el dataframe y aplicará la función as.numeric() para convertir los valores en cada celda a numéricos.

    Con estos dos pasos, deberías poder automatizar el proceso de eliminar ” гол.” y convertir los valores a numéricos para todas las columnas en el dataframe.

Comments are closed.