0
之外的所有字符串
我正在嘗試清理類項目的數據。這些數據涉及從1950年到2011年的NOAA Storm數據。風暴類型(EVTYPE)只應該是48個不同的級別,但是有超過1000個獨特的條目。我試圖找到所有的雪相關的條目,這給了我:R 3.4.1 Windows 10上的gsub - 查找並替換除
table(grep("snow", temp$EVTYPE, ignore.case = TRUE, value = TRUE))
ACCUMULATED.SNOWFALL BLOWING.SNOW COLD.AND.SNOW DRIFTING.SNOW
4 5 1 1
EARLY.SNOWFALL EXCESSIVE.SNOW FALLING.SNOW.ICE FIRST.SNOW
7 25 2 2
HEAVY.SNOW HEAVY.SNOW.SHOWER HEAVY.SNOW.SQUALLS ICE.SNOW
13988 1 1 4
LAKE.EFFECT.SNOW LATE.SEASON.SNOW LATE.SEASON.SNOWFALL LATE.SNOW
656 1 3 2
LIGHT.SNOW LIGHT.SNOW.FLURRIES LIGHT.SNOW.FREEZING.PRECIP LIGHT.SNOWFALL
174 3 1 1
MODERATE.SNOW MODERATE.SNOWFALL MONTHLY.SNOWFALL MOUNTAIN.SNOWS
1 101 1 1
RECORD.MAY.SNOW RECORD.SNOW RECORD.SNOWFALL RECORD.WINTER.SNOW
1 2 2 3
SEASONAL.SNOWFALL SNOW SNOW.ACCUMULATION SNOW.ADVISORY
1 425 1 1
SNOW.AND.ICE SNOW.AND.SLEET SNOW.BLOWING.SNOW SNOW.DROUGHT
4 5 6 4
SNOW.ICE SNOW.SHOWERS SNOW.SLEET SNOW.SQUALL
1 5 5 5
SNOW.SQUALLS THUNDERSNOW.SHOWER UNUSUALLY.LATE.SNOW
14 1 1
有一個稱爲「Lake.Effect.Snow」風暴式,這是48種風暴類型之一。在排除特定風暴類型的情況下,如何替換所有其他條目?我試過了:
table(grep("([^lake]?)snow", temp$EVTYPE, ignore.case = TRUE, value = TRUE))
嘗試忽略Lake.Effect.Snow條目,但沒有好處。
嘗試'「(?<!lake \\。effect \\。)snow」'並添加'perl = TRUE'。 –
*我如何替換所有其他條目* - 但是您不用'grep'替換任何內容,只需提取匹配模式的條目即可。請澄清你的意思。 –
我會使用gsub()來實際替換字符串,因爲那是我在控制檯中顯示的grep()代碼。 –