R:基于数据帧中的大小写分割字符

时间:2017-10-13 21:08:38

标签: r dplyr gsub strsplit

我需要将一组名称如“AbiesAlba”“GenusSpecies”拆分为单独的“Genus”“Species”列。

GenusSpecies
AbiesAlba
AbiesAlba

需要:

属种
Abies Alba
Abies Alba

我知道我需要使用类似于gsub('([[:upper:]])','\ 1',x)和某种形式的mutate的东西,但是当我使用gsub命令时,它会将所有内容分成向量而不是数据框。

1 个答案:

答案 0 :(得分: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