【发布时间】:2017-10-13 21:08:37
【问题描述】:
我需要将一列名称(如“AbiesAlba”“GenusSpecies”)拆分为单独的“Genus”“Species”列。
属种
冷杉
冷杉
需要:
属种
冷杉
冷杉阿尔巴
我知道我需要使用类似于 gsub('([[:upper:]])', ' \1', x) 的东西和某种形式的 mutate,但是当我使用 gsub 命令时,它会将所有内容拆分为一个向量而不是一个数据框。
【问题讨论】:
我需要将一列名称(如“AbiesAlba”“GenusSpecies”)拆分为单独的“Genus”“Species”列。
属种
冷杉
冷杉
需要:
属种
冷杉
冷杉阿尔巴
我知道我需要使用类似于 gsub('([[:upper:]])', ' \1', x) 的东西和某种形式的 mutate,但是当我使用 gsub 命令时,它会将所有内容拆分为一个向量而不是一个数据框。
【问题讨论】:
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
【讨论】: