我需要把一个物体组合在一个伞下。
下面是一个示例对象。
object <- c("Equal = (G1, 20, Slope[0]); Equal = (G1, 20, Slope[1]);",
"Equal = (G1, 21, Slope[0]); Equal = (G1, 21, Slope[1]);",
"Equal = (G1, 22, Slope[0]); Equal = (G1, 22, Slope[1]);")
> object
[1] "Equal = (G1, 20, Slope[0]); Equal = (G1, 20, Slope[1]);"
"Equal = (G1, 21, Slope[0]); Equal = (G1, 21, Slope[1]);"
"Equal = (G1, 22, Slope[0]); Equal = (G1, 22, Slope[1]);"我想做的是:
"Equal = (G1, 20, Slope[0]), (G1, 20, Slope[1]),
(G1, 21, Slope[0]), (G1, 21, Slope[1]),
(G1, 22, Slope[0]), (G1, 22, Slope[1]);"基本上,我需要
(1) combine all under one "Equal" statement.
(2) replace`;` with `,` between statements,
(3) keep one `;` at the end of the object. 有什么想法吗?谢谢!
发布于 2022-04-27 14:45:22
gsub("[; ]+Equal =",',',paste(object, collapse = ''))
[1] "Equal = (G1, 20, Slope[0]), (G1, 20, Slope[1]), (G1, 21, Slope[0]), (G1, 21, Slope[1]), (G1, 22, Slope[0]), (G1, 22, Slope[1]);"发布于 2022-04-27 14:48:38
您可以使用str_extract_all()从stringr提取包含括号的所有文本。
library(stringr)
str_c("Equal = ", toString(unlist(str_extract_all(object, "\\(.+?\\)"))), ";")
# [1] "Equal = (G1, 20, Slope[0]), (G1, 20, Slope[1]), (G1, 21, Slope[0]), (G1, 21, Slope[1]), (G1, 22, Slope[0]), (G1, 22, Slope[1]);"https://stackoverflow.com/questions/72030633
复制相似问题