使用tidyr中的split()将字母代码分成r中的4个变量

时间:2018-10-29 15:17:51

标签: r tidyr

我有关于鱼类ID的数据,ID变量由四个字母的代码组成,第一个字母用于陪产假,第二个字母用于产假,第三个字母代表治疗,第四个字母代表个人。单个观察结果可能像这样BBRG

此数据是一个变量,我需要将这些字母分成单独的列,因为没有分隔符,所以我不确定在sep=的{​​{1}}参数中应放置什么。

示例数据:

separate

1 个答案:

答案 0 :(得分:1)

我们可以使用正则表达式环视

ConsumeContext

或将library(tidyverse) df1 %>% separate(ID, into = c("paternity", "maternity", "treatment", "individual"), sep="(?<=[A-Z])") 指定为位置索引

sep

一种df1 %>% separate(ID, into = c("paternity", "maternity", "treatment", "individual"), sep= c(1, 2, 3)) 方法将是

base R

数据

do.call(rbind, strsplit(df1$ID, ""))