R:如何根据字符串';s元素';长度

R:如何根据字符串';s元素';长度,r,regex,stringr,R,Regex,Stringr,我的问题包括两部分: 如何根据元素的长度将字符串拆分为多个字符串 如何根据字符串元素的长度动态创建先验未知数量的字符串 我的目标是拆分字符串: text <- "a.a 5bb c- dd e f" text不清楚您使用什么标准来分割字符串,但当然可以创建一个按长度分组和命名的字符向量列表 假设您有这样一个字符串: set.seed(69) 多亏了艾伦的回答,我才解决了我的问题。下面的代码实现了我想要的 library(dplyr) text <- &qu

我的问题包括两部分:

  • 如何根据元素的长度将字符串拆分为多个字符串

  • 如何根据字符串元素的长度动态创建先验未知数量的字符串

  • 我的目标是拆分字符串:

    text <- "a.a 5bb c- dd e f"
    

    text不清楚您使用什么标准来分割字符串,但当然可以创建一个按长度分组和命名的字符向量列表

    假设您有这样一个字符串:

    set.seed(69)
    
    多亏了艾伦的回答,我才解决了我的问题。下面的代码实现了我想要的

    library(dplyr)
    
    text <- "a.a 5bb c- dd e f abcde 12345" 
    
    string <- strsplit(text, " ")[[1]] %>% 
        split(., nchar(.)) %>% 
        lapply(., paste, collapse = ' ')
    
    库(dplyr)
    文本%
    重叠(、粘贴、折叠=“”)
    
    根据长度,字符串具有不同的lengths@akrun我想你的评论是指我问题的第二部分。要创建的结果字符串肯定会有不同的长度,true。然而,我的问题不是关于绳子本身的长度;我的问题是关于字符串应该收集的元素的长度。这看起来差不多正确!唯一不同于我所需要的是有由一个字符串而不是多个字符串组成的字符向量,即,
    “tnfmh…”
    而不是
    “t”“n”“f”“m”“h…”
    。玩
    粘贴(…,collapse='')
    可能会解决这个问题。
    all_strings <- strsplit(x, " ")[[1]]
    
    nchar_list <- split(all_strings, nchar(all_strings))
    nchar_list
    #> $`1`
    #> [1] "t" "n" "f" "m" "h" "m" "o" "w" "a"
    #> 
    #> $`2`
    #> [1] "tg" "co" "cn" "gz" "jg" "qe" "ko"
    #> 
    #> $`3`
    #> [1] "wey" "ssk" "dht" "vbo" "luy" "slu" "mgi" "ugc"
    #> 
    #> $`4`
    #> [1] "wuqr" "shga"
    #> 
    #> $`5`
    #> [1] "nrzkm"
    #> 
    #> $`6`
    #> [1] "kscwew" "jusfyn" "pjnqgy" "mfbuhe" "dmwsor"
    #> 
    #> $`7`
    #> [1] "zmdpucv"
    #> 
    #> $`9`
    #> [1] "wfiwrhqyt" "qbreifaoz"
    #> 
    #> $`15`
    #> [1] "opxbhdqpiflaoic"
    #> 
    #> $`19`
    #> [1] "zdjgspimramrunsqslo"
    
    library(dplyr)
    
    text <- "a.a 5bb c- dd e f abcde 12345" 
    
    string <- strsplit(text, " ")[[1]] %>% 
        split(., nchar(.)) %>% 
        lapply(., paste, collapse = ' ')