在R中的字符串的每个字符之间插入垂直条

时间:2017-07-20 21:27:13

标签: r stringr stringi

如何在R中字符串的每个字符之间插入一个垂直条?例如,假设我有一个字符串“ABC123”。我如何获得输出为“A | B | C | 1 | 2 | 3”?如果有人可以将这个想法用于字符串向量,那就太好了。

2 个答案:

答案 0 :(得分:1)

首先,分成单个字符,然后折叠

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"  

答案 1 :(得分:0)

以下是使用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"