Quiero extraer el texto entre "Descripción de la pieza:" y "- Instala" usando R; de manera similar, es necesario extraer otro texto, ya que el texto es continuo y no se puede extraer.

Texto de ejemplo:

Cola de soporte: WW_SC GD OB V5; V5 Business:; Fin de semana local: Verdadero; Fiesta local: Falso; *** NOTA: Este es un dispositivo PARTNER. Siga el proceso especial de socios en lugar de la cadena de soporte estándar. SupportID: 469 ******************************** ** Eventos y archivos adjuntos de eventos ** ****** *************************** Número de incidente: 34c-48a6 Versión del sistema operativo: Windows Server, 2003 Hora del evento: 2015-07-10T00: 29.7110 Número de pieza Z: xxxxxx-001, Descripción de la pieza: Fuente de alimentación de conexión en caliente de CA de 1000 vatios - Se instala en el chasis de la computadora como fuente principal o redundante (800 vatios a 100 VCA a 1000 vatios a 200 VCA de potencia máxima) - Requiere 100-240 VCA a 50 / 60Hz, RoHS Sí, CSR A Tipo de error: HW Sin archivos adjuntos. Acción recomendada: la fuente de alimentación en el compartimento 2 ha fallado y debe reemplazarse con el número de pieza de repuesto xxxxxx-001.

r
2
SAF 9 dic. 2016 a las 21:08
Algo como if(grepl("Part Description:", fixed=TRUE)) myStuff <- gsub(".*Part Description: (.*) - Installs.*", "\\1").
 – 
lmo
9 dic. 2016 a las 21:18

1 respuesta

La mejor respuesta

Podría hacer lo siguiente:

sub(".*Part Description:(.*)Installs.*", "\\1", txt)

Esto sustituye toda la cadena por la parte entre Part Description: y Installs. Esto da como resultado: " 1000 watt AC hot-plug power supply - "

O usando stringr puedes hacer:

require(stringr)
str_sub(str_extract(txt, "Part Description:.*Installs"), 18, -9)

Lo que te da el mismo resultado.

5
Rentrop 9 dic. 2016 a las 21:17
La segunda función funciona perfectamente, con la primera función no obtengo el resultado exacto; junto con el resultado, también proporciona el texto restante. Esto se prueba con una gran cantidad de datos, no con la muestra que mencioné anteriormente. Además, ¿qué significa "\\ 1"? Y, si hay muchos asteriscos (*) justo antes de "Instalaciones" como se menciona en el ejemplo anterior, cómo eliminarlos usando la primera función
 – 
SAF
11 dic. 2016 a las 04:25