在R中的字符串的每个字符之间插入竖线

Insert vertical bar between each character of a string in R

如何在 R 中的字符串的每个字符之间插入竖线?例如,假设我有一个字符串 "ABC123"。我怎样才能得到 "A|B|C|1|2|3" 的输出?如果有人可以将这个想法向量化为字符串向量,那就太好了。

先分割成单个字符再折叠

paste(unlist(strsplit("ABC123", "")), collapse = "|")
#[1] "A|B|C|1|2|3"

对于字符串向量,使用sapply循环遍历它们

mystrings = c("ABC123", "PASDP")
sapply(strsplit(mystrings, ""), paste, collapse = "|")
#[1] "A|B|C|1|2|3" "P|A|S|D|P"  

这是一个使用 regex

的选项
gsub("(?<=.)(?=.)", "|", "ABC123", perl = TRUE)
#[1] "A|B|C|1|2|3"

或多于一个字符串

mystrings <- c("ABC123", "PASDP")
gsub("(?<=.)(?=.)", "|", mystrings, perl = TRUE)
#[1] "A|B|C|1|2|3" "P|A|S|D|P"