2

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

4

2 回答 2

2

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

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"  
于 2017-07-20T21:31:02.963 回答
1

这是一个使用选项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"  
于 2017-07-21T01:58:44.843 回答