У меня есть что-то вроде более 100 разных деревень в моем материале. Чтобы мои визуализации имели смысл, мне нужно сгруппировать их в 22 муниципалитета, что-то вроде этого:
TROLLHÄTTAN<-toupper(c("Trollhättan","Sjuntorp","Velanda","Åsaka","Upphärad"))
UDDEVALLA<-toupper(c("UDDEVALLA","KURVERÖD","AMMENÄS","FAGERHULT","LANESUND OCH ÖVERBY",
"LANESUND","ÖVERBY","RESTENÄS OCH ULVESUND","RESTENÄS","ULVESUND","STRAND","UTBY","HOGSTORP","SUND","SMEDSERÖD"))
VÄNERSBORG<-toupper(c("Vänersborg","Vargön","Brålanda","Frändefors","Nordkroken","Katrinedal"))
LYSEKIL<-toupper(c("Lysekil", "Brastad", "Grundsund", "Fiskebäckskil"))
FÄRGELANDA<-toupper(c("Färgelanda","Högsäter","Ödeborg","Stigen"))
MELLERUD<-toupper(c("Mellerud","Dals Rostock","Åsensbruk"))
ED<-toupper(c("Ed"))
BENGTSFORS<-toupper(c("Bengtsfors","Dals Långed","Billingsfors","Bäckefors","Skåpafors"))
ÅMÅL<-toupper(c("Åmål","Tösse","Fengersfors"))
STRÖMSTAD<-toupper(c("Strömstad","Skee","Kebal","Stare"))
TANUM<-toupper(c("Grebbestad","Tanumshede","Fjällbacka","Hamburgsund","Rabbalshede"))
SOTENÄS<-toupper(c("Hunnebostrand","Kungshamn","Smögen","Malmön","Bovallstrand"))
MUNKEDAL<-toupper(c("Munkedal","Dingle","Hällevadsholm","Hedekas","Torreby"))
ORUST<-toupper(c("Svanesund","Ellös","Hälleviksstrand","Mollösund","Henån","Höggeröd","Vindön och Töllås","Varekil","Vindön","Töllås"))
LILLA_EDET<-toupper(c("Lilla Edet","Lödöse","Lilla Edet västra","Göta","Nygård","Hjärtum"))
ALE<-toupper(c("Ale","Nödinge-Nol","Surte","Älvängen","Skepplanda","Alvhem"))
STENUNGSUND<-toupper(c("Jörlanda","Stora Höga","Timmervik","Spekeröd","Stenungsund","Stenungsön","Svartehallen","Svenshögen","Ucklum","Ödsmål"))
TJÖRN<-toupper(c("Bleket","Djupvik och Fagerfjäll","Höviksnäs","Klövedal","Kyrkesund och Bö","Kållekärr","Myggenäs","Rönnäng","Skärhamn","Stora Dyrön",
"Djupvik","Fagerfjäll","Kyrkesund","Bö"))
KUNGÄLV<-toupper(c("Aröd och Timmervik","Diseröd","Duvesjön","Harestad och Nereby","Kareby","Kode","Kovikshamn","Kungälv","Kärna",
"Lundby","Marstrand","Marstrand", "Arvidsvik","Risby","Rishammar","Signehög och Norrmannebo","Solberga","Tjuvkil","Ödsmål och Åseby",
"Ödsmåls mosse och Rörtången","Aröd","Timmervik","Harestad","Nereby","Signehög","Norrmannebo","Ödsmål","Åseby","Ödsmåls mosse","Rörtången"))
ALINGSÅS<-toupper(c("Alingsås","Ingared","Sollebrunn","Västra Bodarna","Gräfsnäs","Hemsjö","Stora Mellby","Hjälmared","Långared","Svanvik",
"Ryd","Magra"))
VARA<-toupper(c("Vara","Kvänum","Tråvad","Jung","Vedum","Larv","Stora Levene","Emtunga","Arentorp"))
ESSUNGA<-toupper(c("Nossebro","Främmestad","Jonslund"))
VÅRGÅRDA<-toupper(c("Vårgårda","Östadkulle","Horla"))
GRÄSTORP<-toupper(c("GRÄSTORP"))
LIDKÖPING<-toupper(c("Lidköping","Lidköping norra","Vinninga","Järpås","Filsbäck","Örslösa","Saleby"))
GÖTEBORG<-toupper(c("Göteborg","Gunnared och Hammarkullen","Torslanda","Billdal","Olofstorp","Donsö","Nolvik","Styrsö","Angered",
"Brännö","Säve","Helgered","Tumlehed","Asperö","Stenared","Vrångö","Gundal och Högås","Gunnared","Hammarkullen","Gundal","Högås"))
Я пытаюсь заменить вектор названия деревни на название муниципалитета через mgsub (textclean)версия), но я сталкиваюсь с проблемами. Например, «нить» (название деревни) также является популярным суффиксом. Это означает, что «HUNNEBOSTRAND» преобразуется в «HUNNEBOUDDEVALLA», что, конечно, не оптимально.
Вместо этого я пытаюсь записать свои векторы с помощью регулярных выражений:
LYSEKIL<-toupper(c("^Lysekil$", "^Brastad$", "^Grundsund$", "^Fiskebäckskil$"))
Я считаю, чтоtextclean версия mgsub не может обрабатывать регулярные выражения. Я переключаюсь на пакет mgsub, который хочет, чтобы мои векторы были одинаковой длины, а это не то, что я хочу. Версия mdsub для qdap, похоже, работает аналогичным образом.
Есть ли способ обойти это?
Исходные данные (с удаленными чувствительными частями)
структура (список (CITY = c ("HENÅN", NA, "HENÅN"), "ÄLVÄNGEN", NA, "TROLLHÄTTAN"), ZIPCODE = c (47395L, NA, 47332L, 44636L, NA, 46157L), COURSEOFFERING_ID = c (97113L, 97113L, 97113L, 97113L, 97113L), 9711311, 9711311, 9711311)= c (1L, 5L, 9L, 12L, 15L, 18L), класс = "data.frame")