0

I need to split a column of names like "AbiesAlba" "GenusSpecies" into separate columns "Genus" "Species".

GenusSpecies
AbiesAlba
AbiesAlba

Needs to be:

Genus Species
Abies Alba
Abies Alba

I know I need to use something similar to gsub('([[:upper:]])', ' \1', x) and some form of mutate, but when I use the gsub command it splits everything into a vector instead of a data frame.

1 Answers1

0
x <- c('GenusSpecies',
       'AbiesAlba',
       'AbiesAlba')

Genus <- gsub('(.*)[A-Z].*','\\1',x)
Species <- gsub('.*([A-Z].*)','\\1',x)

df <- data.frame(Genus, Species, stringsAsFactors = FALSE)
df
BigTimeStats
  • 447
  • 3
  • 12