我正在使用以下dataset,其中包含墨西哥32個州中的每個州的平均氣溫。如何清理R中的字符串列(大寫字母和重音符號)?
library(data.table)
# Read data from website
col.names <- c('ENTIDAD', 'ANYO', 'ENERO', 'FEBRERO', 'MARZO', 'ABRIL', 'MAYO', 'JUNIO',
'JULIO', 'AGOSTO', 'SEPTIEMBRE', 'OCTUBRE', 'NOVIEMBRE', 'DICIEMBRE', 'UNIDAD')
temperature <- fread('http://201.116.60.46/DatosAbiertos/Temperatura_promedio.csv',
col.names = col.names)
ENTIDAD列有32個狀態名稱。然而,所有的名字出現在大寫字母,並且有取代它應該有重音的字母一些奇怪的數字:
unique(temperature$ENTIDAD)
[1] "AGUASCALIENTES" "BAJA CALIFORNIA"
[3] "BAJA CALIFORNIA SUR" "CAMPECHE"
[5] "COAHUILA DE ZARAGOZA" "COLIMA"
[7] "CHIAPAS" "CHIHUAHUA"
[9] "DISTRITO FEDERAL" "DURANGO"
[11] "GUANAJUATO" "GUERRERO"
[13] "HIDALGO" "JALISCO"
[15] "M\311XICO" "MICHOAC\301N DE OCAMPO"
[17] "MORELOS" "NAYARIT"
[19] "NUEVO LE\323N" "OAXACA"
[21] "PUEBLA" "QUER\311TARO"
[23] "QUINTANA ROO" "SAN LUIS POTOS\315"
[25] "SINALOA" "SONORA"
[27] "TABASCO" "TAMAULIPAS"
[29] "TLAXCALA" "VERACRUZ DE IGNACIO DE LA LLAVE"
[31] "YUCAT\301N" "ZACATECAS"
有一個簡單的方法有以下字符串替換每個這些?
states <- c('Aguascalientes',
'Baja California',
'Baja California Sur',
'Campeche',
'Chiapas',
'Chihuahua',
'Coahuila',
'Colima',
'DF',
'Durango',
'Guanajuato',
'Guerrero',
'Hidalgo',
'Jalisco',
'Michoacan',
'Morelos',
'Mexico',
'Nayarit',
'Nuevo Leon',
'Oaxaca',
'Puebla',
'Queretaro',
'Quintana Roo',
'San Luis Potosi',
'Sinaloa',
'Sonora',
'Tabasco',
'Tamaulipas',
'Tlaxcala',
'Veracruz',
'Yucatan',
'Zacatecas')
在我看來,這是一個基於R對非ASCII字符的默認處理的讀入問題,嘗試調整fread的'encoding ='參數? – Nate
我試過了不同的編碼選項:「UTF-8」和「Latin-1」,但結果是一樣的。 – jroberayalas
當我運行'fread(...,encoding =「Latin-1」)'我得到原始重音元音完好的名字... – Nate