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.

Eliminando comillas simples en R

Estoy creando algunas nubes de palabras para un proyecto en Kaggle, pero esta línea de código no está funcionando. Estoy tratando de eliminar todas las comillas simples de una columna que contiene texto. En mi corpus, “s” y “re” son dos de mis palabras más frecuentes. Mientras los datos todavía están en forma de un data frame, he estado usando esta línea de código df$col <- gsub("'","", df$col).

A continuación se muestra un ejemplo de datos. En mi proyecto de Kaggle, los datos de texto vienen en una columna de un data frame. ¿Me estoy perdiendo algo? También he intentado str_replace_all y sub.

EDITAR:
dput(head(df))

structure(list(X1 = c(0, 1, 2, 3, 4, 5), Character = c("Michael",
"Jim", "Michael", "Jim", "Michael", "Michael"), Line = c("All right Jim. Your quarterlies look very good. How are things at the library?",
"Oh, I told you. I couldn’t close it. So…", "So you’ve come to the master for guidance? Is this what you’re saying, grasshopper?",
"Actually, you called me in here, but yeah.", "All right. Well, let me show you how it’s done.",
"[on the phone] Yes, I’d like to speak to your office manager, please. Yes, hello. This is Michael Scott. I am the Regional Manager of Dunder Mifflin Paper Products. Just wanted to talk to you manager-a-manger. [quick cut scene] All right. Done deal. Thank you very much, sir. You’re a gentleman and a scholar. Oh, I’m sorry. OK. I’m sorry. My mistake. [hangs up] That was a woman I was talking to, so… She had a very low voice. Probably a smoker, so… [Clears throat] So that’s the way it’s done."
), Season = c(1, 1, 1, 1, 1, 1), Episode_Number = c(1, 1, 1,
1, 1, 1)), row.names = c(NA, -6L), class = c("tbl_df", "tbl",
"data.frame"))

EDITAR 2:
Previamente afirmé que df$col <- gsub("'","", df$col) funcionaba en R Studio. Eso solo era cierto en datos de prueba. Lo usé en el dput y no funcionó, así que vuelvo a empezar desde cero.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el código que tienes df$col <- gsub("\'","", df$col) debería haber funcionado para reemplazar todas las comillas simples con un espacio vacío en la columna “col” de tu marco de datos “df”. Sin embargo, mencionaste que has intentado usar str_replace_all y sub también sin éxito.

    Una cosa que podrías revisar nuevamente es la codificación de los datos de texto en tu proyecto de Kaggle. Ciertas comillas pueden tener codificaciones diferentes y, por lo tanto, es posible que no sean reconocidas por el código que has intentado. También podrías intentar usar diferentes formas de comillas en la función gsub, como o .

    También sería útil ver una muestra de tu marco de datos para investigar más a fondo el problema. Puedes usar la función dput para producir un ejemplo reproducible de tus datos en R. Por ejemplo, dput(head(df)) proporcionaría las primeras 6 filas de tu marco de datos “df” en un formato que puede ser fácilmente copiado y pegado para que otros lo utilicen y ayuden a solucionar el problema.

    EDITAR: Basado en los datos de muestra que proporcionaste, parece que la columna de la que quieres eliminar las comillas se llama “Line”, no “col”. Entonces el código correcto sería df$Line <- gsub("\'","", df$Line). Esto eliminará todas las comillas de la columna “Line” de tu marco de datos.

    EDITAR 2: Es posible que haya diferentes tipos de comillas en tus datos de texto, lo cual podría estar causando el problema de que la expresión regular no coincida con todas ellas. Podrías intentar usar la función stri_replace_all_regex del paquete “stringi”, que te permite especificar un patrón de expresión regular que coincida con múltiples tipos de comillas. Por ejemplo:

    library(stringi)
    df$Line <- stri_replace_all_regex(df$Line, "[\\p{P}'‘’]", "")
    

    Esto utiliza un patrón de expresión regular que coincide con cualquier signo de puntuación (\\p{P}) o cualquiera de los tres tipos de comillas (', , ) y las reemplaza con una cadena vacía.

Comments are closed.