我测试了以下脚本,但它显示错误,发生了什么?
我只想将 Y & 33 & N & A (Y33@N(A)) 保存到四个单独的列中。
library('tidyverse')
tta <- data.frame(res=c("Y33@N(A)","H5@O(B)"))
ttb <- tta %>%
separate_wider_regex(res, patterns=c(resn="^[A-Za-z]+",
resi="\\d+(?=@)",
name="(?<=\\@)[a-zA-Z]+(?=\\()",
chain="(?<=\\()[a-zA-Z]+(?=\\))"
),
too_few="debug")
受
patterns
参数的在线文档描述中的“未命名组件将匹配,但不包含在输出中”的启发,this
ttb <- tta %>%
separate_wider_regex(res, patterns=c(resn="^[A-Za-z]+",
resi="\\d+",
"\\@",
name="[a-zA-Z]+",
"\\(",
chain="[a-zA-Z]+",
"\\)$"
))
似乎为您提供了您想要的测试数据,尽管我怀疑您的用例可能需要更复杂的正则表达式。
ttb
# A tibble: 2 × 4
resn resi name chain
<chr> <chr> <chr> <chr>
1 Y 33 N A
2 H 5 O B