Così ho i seguenti dati, diciamo chiamato "my_data":Regular Expression in R con un lookbehind negativo
Storm.Type
TYPHOON
SEVERE STORM
TROPICAL STORM
SNOWSTORM AND HIGH WINDS
Quello che voglio è quello di classificare o meno ogni elemento in my_data $ Storm.Type è una tempesta, ma io non voglio includere tempeste tropicali come tempeste (ho intenzione di classificarli separatamente), in modo tale che avrei dovuto
Storm.Type Is.Storm
TYPHOON 0
SEVERE STORM 1
TROPICAL STORM 0
SNOWSTORM AND HIGH WINDS 1
ho scritto il seguente codice:
my_data$Is.Storm <- my_data[grep("(?<!TROPICAL) (?i)STORM"), "Storm.Type"]
Ma questo restituisce la "TEMPESTA TEMPESTA" solo come una tempesta (ma lascia fuori SNOWSTORM E HIGH WINDS). Grazie!
Qual è il punto di '' nella vostra espressione regolare (i?)? Il problema è che stai cercando la stringa '" STORM "' con uno spazio precedente, quindi '" SNOWSTORM "' non si qualifica. –
Ciao Blue. Mentre ho accettato la risposta di Ben, hai effettivamente raggiunto il cuore del problema con il mio codice. Mi piacerebbe creare il mio codice in modo che non si preoccupi di quello spazio (quindi se STORM è in THUNDERSTORM o SNOWSTORM, voglio che sia così come STORM da solo). Sai come mi libererei di quello spazio che il mio codice sta cercando? Il punto di (? I) è la possibilità che qualcuno entri in una tempesta come "tempesta" o "tempesta" o "sToRm", ecc. –