代码之家  ›  专栏  ›  技术社区  ›  cgibbs_10

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

  •  2
  • cgibbs_10  · 技术社区  · 7 年前

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

    2 回复  |  直到 7 年前
        1
  •  2
  •   d.b    7 年前

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

    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"  
    
        2
  •  1
  •   akrun    7 年前

    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"