У меня есть набор данных, который включает в себя DMA (обозначенная рыночная зона), но многие из DMA отображаются как два разных уровня, потому что DMA усечено, например, DMA "Abilene-Sweetwater, TX" иногда отображается как "Abilene-Sweetw "
Ниже приведен фрагмент набора данных:
dma <- c("Abilene-Sweetw", "Abilene-Sweetwater, TX",
"Albany, GA", "Albany, GA",
"Albany-Schenec", "Albany-Schenec",
"Albany-Schenectady-Troy, NY", "Albany-Schenectady-Troy, NY")
cost <- c(0.46, 0.46, 0.45, 0.45, 0.32, 0.32, 0.32, 0.32)
DMA.df <- data.frame(dma, cost)
DMA.df
dma cost
1 Abilene-Sweetw 0.46
2 Abilene-Sweetwater, TX 0.46
3 Albany, GA 0.45
4 Albany, GA 0.45
5 Albany-Schenec 0.32
6 Albany-Schenec 0.32
7 Albany-Schenectady-Troy, NY 0.32
8 Albany-Schenectady-Troy, NY 0.32
Поиск в SO и других решениях, которые показывают, как вручную объединить несколько уровней факторовв одну. Очевидно, я не хочу делать это вручную.
Я ищу способ исправить усеченный DMA и превратить его в «полный» DMA (город -...-, штат). Одна из благодатных сторон заключается в том, что в усечении есть шаблон - он обрезается на 14 букв. Решение должно соответствовать всем 14 символам, потому что многие DMA начинаются с с одинаковыми именами (например, "Albany, GA" и "Albany -..., NY").
Поместите другойКстати, мне нужно найти все усеченные DMA, которые соответствуют полным DMA, и превратить усеченный DMA в полный DMA.
Пример DF должен выглядеть следующим образом:
dma cost
1 Abilene-Sweetwater, TX 0.46
2 Abilene-Sweetwater, TX 0.46
3 Albany, GA 0.45
4 Albany, GA 0.45
5 Albany-Schenectady-Troy, NY 0.32
6 Albany-Schenectady-Troy, NY 0.32
7 Albany-Schenectady-Troy, NY 0.32
8 Albany-Schenectady-Troy, NY 0.32
Заранее спасибо за любые предложения.