Home > Software design >  Move text at the end of the string to the beginning
Move text at the end of the string to the beginning

Time:11-14

I have some data which looks like:

                              NMUN
1      Cubo de Tierra del Vino, El
2                     Peraleja, La
3                       Franco, El
4  Pont de Vilomara i Rocafort, El
5                      Gabias, Las
6                       Adrada, La
7                          Bola, A
8                       Fayos, Los
9                     Recuenco, El

What I am trying to do is to move everything after the last comma to the beginning of the place.

Expected output:

NMUN
El Cubo de Tierra del Vino
La Peraleja
El Franco
El Pont de Vilomara i Rocafort
Las Gabias

Data

data = structure(list(NMUN = c("Cubo de Tierra del Vino, El", "Peraleja, La", 
"Franco, El", "Pont de Vilomara i Rocafort, El", "Gabias, Las", 
"Adrada, La", "Bola, A", "Fayos, Los", "Recuenco, El", "Pobra do Brollón, A", 
"Viso de San Juan, El", "Viso del Alcor, El", "Granjuela, La", 
"Bòrdes, Es", "Guingueta d'Àneu, La", "Villares, Los", "Grove, O", 
"Losar del Barco, El", "Iglesuela, La", "Vall de Bianya, La")), row.names = c(NA, 
-20L), class = "data.frame")

CodePudding user response:

Using gsub and a bit of regex you could do:

data$NMUN <- gsub("^(.*),\\s(.*)$", "\\2 \\1", data$NMUN)

data
#>                              NMUN
#> 1      El Cubo de Tierra del Vino
#> 2                     La Peraleja
#> 3                       El Franco
#> 4  El Pont de Vilomara i Rocafort
#> 5                      Las Gabias
#> 6                       La Adrada
#> 7                          A Bola
#> 8                       Los Fayos
#> 9                     El Recuenco
#> 10             A Pobra do Brollón
#> 11            El Viso de San Juan
#> 12              El Viso del Alcor
#> 13                   La Granjuela
#> 14                      Es Bòrdes
#> 15            La Guingueta d'Àneu
#> 16                   Los Villares
#> 17                        O Grove
#> 18             El Losar del Barco
#> 19                   La Iglesuela
#> 20              La Vall de Bianya

CodePudding user response:

Here is an alternative approach:

library(dplyr)
library(tidyr)

data %>% 
  separate(NMUN, c("NMUN", "a"), sep = ",") %>% 
  unite(NMUN, c(a, NMUN), sep = " ")
                              NMUN
1       El Cubo de Tierra del Vino
2                      La Peraleja
3                        El Franco
4   El Pont de Vilomara i Rocafort
5                       Las Gabias
6                        La Adrada
7                           A Bola
8                        Los Fayos
9                      El Recuenco
10              A Pobra do Brollón
11             El Viso de San Juan
12               El Viso del Alcor
13                    La Granjuela
14                       Es Bòrdes
15             La Guingueta d'Àneu
16                    Los Villares
17                         O Grove
18              El Losar del Barco
19                    La Iglesuela
20               La Vall de Bianya
  • Related