在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"
如何在 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"