У меня есть данные о людях на несколько лет, но их имена отформатированы по-разному каждый год. Половина имен уже в заказе «Первый Последний», но я не могу понять, как успешно отредактировать другую половину («Последний, Первый»).разделительная и переупорядочивающая символьная строка запятой в r
Вот пример ДФ:
name <- c("First1 Last1","Last2, First2", "Last3, First3", "First4 Last4", "First5 Last5")
salary <-c(51000, 72000,125000,67000,155000)
year <-c(2012,2014,2013,2013,2014)
df <- data.frame(name, salary, year, stringsAsFactors=FALSE)
Вот вещи, которые я пробовал: дробить текст запятой:
df$name2 <- strsplit(df$name, ", ") #to split the character string by comma
df$name3 <-paste(df$name2, collapse=" ") #to collapse the newly created vectors back into a string
df$name4 <-paste(rev(df$name2)) #to try pasting each vector in reverse order
df$name5 <-paste(rev(df$name2)[2:1]) #trying again...
Я напечатанной правильные имена, но в обратном направлении, и напечатал их на неправильных строках, но, несмотря на весь поиск в Google, я не могу заставить его работать правильно. Что я делаю не так?
Должно быть, я был более ясен - у моего реального датафрейма есть фактические имена, а не слова First & Last. Лучший пример: имя <-c («Smith, John», «Marcus Green», «Sanchez, Mario», «Roberts, Jennifer», «Sammy Lee») – jesstme
@ Jesster: Я отредактировал свой ответ – etienne
Очень блестящее решение! – SabDeM