我正在寻找使用split_rows()整理数据,但是我的数据没有定界符。相反,我想按每个单独的字符“分开”。因为数据中没有定界符,所以我不确定可以在sep=
选项中输入什么。
我的数据设置如下:
cog func
COG0115 EH
COG0117 H
COG0119 E
COG0124 J
COG0126 G
COG0129 EG
我尝试过:
df %>% separate_rows(., 'func', sep='[A-Z]')
但是我意识到这是在告诉函数将每个大写字母视为一个“定界符”,并且绝对不是我想要的,因为它会导致一个空列...
我正在寻找:
cog func
COG0115 E
COG0115 H
COG0117 H
COG0119 E
COG0124 J
COG0126 G
COG0129 E
COG0129 G
答案 0 :(得分:2)
正则表达式环顾四周可以用作sep
。
library(dplyr)
library(tidyr)
df %>%
separate_rows(func, sep = '(?<=.)(?=.)')
# cog func
#1 COG0115 E
#2 COG0115 H
#3 COG0117 H
#4 COG0119 E
#5 COG0124 J
#6 COG0126 G
#7 COG0129 E
#8 COG0129 G
df <- structure(list(cog = c("COG0115", "COG0117", "COG0119", "COG0124",
"COG0126", "COG0129"), func = c("EH", "H", "E", "J", "G", "EG"
)), class = "data.frame", row.names = c(NA, -6L))