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.

Eliminar texto de una cadena

Estoy tratando de eliminar el texto “12:00:00 AM” de la cadena, por ejemplo: “4/12/2016 12:00:00 AM” de la columna “ActivityDate”.

Estoy usando esta tubería:

Sleep <- sleepDay_merged %>%
  rename('ActivityDate' = 'SleepDay') %>%
  gsub("12:00:00 AM","", 'ActivityDate')

Y obtengo este error:

Además:

Mensaje de advertencia:
En sub(., “12:00:00 AM”, “”, “ActivityDate”) :
el argumento ‘pattern’ tiene una longitud > 1 y solo el primer elemento será utilizado

¿Podrías ayudarme por favor?

Saludos

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que la función gsub() no está funcionando como se espera y muestra un mensaje de advertencia. Este mensaje de advertencia indica que el argumento pattern en la función gsub() tiene más de un elemento, pero solo se está utilizando el primer elemento. Esto podría deberse al hecho de que la función gsub() espera una expresión regular como argumento pattern, pero en su lugar recibe una cadena literal.

    Para solucionar este problema, puedes modificar la llamada a gsub() para utilizar una expresión regular que coincida con toda la cadena de texto que se desea eliminar. Por ejemplo:

    {r}
    Sleep <- sleepDay_merged %>%
    rename('ActivityDate' = 'SleepDay') %>%
    mutate(ActivityDate = gsub(" 12:00:00 AM$", "", ActivityDate, perl = TRUE))

    En este código actualizado, la expresión regular " 12:00:00 AM$" coincide con la cadena de texto " 12:00:00 AM" al final ($) de la columna ActivityDate y la reemplaza por una cadena vacía. El argumento perl = TRUE indica a gsub() que utilice expresiones regulares de estilo Perl, que pueden ser más potentes que el motor de expresiones regulares predeterminado en R.

Comments are closed.