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.

Seleccionando filas donde una palabra ocurre en la oración.

Quiero filtrar filas específicas de un conjunto de datos que obtuve del paquete r de Project Gutenberg. Para eso, quiero seleccionar solo las filas que contienen una palabra dada, pero el problema es que todas mis filas tienen más de una palabra, por lo que no puedo utilizar filter().

Por ejemplo:

La oración es: “The Little Vanities of Mrs. Whittaker: A Novel”. Quiero filtrar todas las filas que contengan la palabra “novel”, pero no puedo encontrar cómo hacerlo.

gutenberg_full_data <- left_join(gutenberg_works(language == "en"), gutenberg_metadata, by = "gutenberg_id")

gutenberg_full_data <- left_join(gutenberg_full_data, gutenberg_subjects)

gutenberg_full_data <- subset(gutenberg_full_data, select = -c(rights.x, has_text.x, language.y, gutenberg_bookshelf.x, gutenberg_bookshelf.y, rights.y, has_text.y, gutenberg_bookshelf.y, gutenberg_author_id.y, title.y, author.y))

gutenberg_full_data <- gutenberg_full_data[-which(is.na(gutenberg_full_data$author.x)),]
novels <- gutenberg_full_data %>% filter(subject == "Drama")

original_books <- gutenberg_download((novels), meta_fields = "title")

original_books

tidy_books <- original_books %>%
  unnest_tokens(word, text)

Este es el código que utilicé para obtener el marco de datos utilizando el paquete “gutenbergr”.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para filtrar filas específicas que contienen una palabra dada, puedes utilizar la función grepl() en combinación con la función filter(). grepl() prueba si un patrón existe en una cadena y devuelve un vector lógico. Luego puedes utilizar este vector lógico para filtrar las filas que contienen la palabra dada. Aquí tienes un ejemplo de código:

    # Asumiendo que tienes un data frame llamado `df` con una columna llamada `sentence`
    # utilizando la función `grepl()` para filtrar las filas que contienen la palabra "novel"
    filtered_df <- df %>% filter(grepl("novel", sentence))
    

    En este ejemplo, "novel" es el patrón que se busca en la columna sentence del data frame df. El data frame resultante filtered_df solo contendrá las filas que tienen la palabra “novel” en ellas.

    ¡Espero que esto te ayude!

Comments are closed.