代码之家  ›  专栏  ›  技术社区  ›  Shaggy Glitch

根据字符串模式R从命名列表中提取项目

  •  1
  • Shaggy Glitch  · 技术社区  · 11 月前

    例如,我试图根据共享字符串模式从列表中提取名称相似的项目

    > df1<- data.frame(1:5)
    > df2 <-data.frame(11:15)
    > df3 <-data.frame(26:30)
    > df4 <- data.frame (36:40)
    > 
    > lst<- list(
    +   abc.1 = df1, 
    +   abc.2 =df2, 
    +   cat = df3, 
    +   husky =df4)
    > 
    > print(lst)
    $abc.1
      X1.5
    1    1
    2    2
    3    3
    4    4
    5    5
    
    $abc.2
      X11.15
    1     11
    2     12
    3     13
    4     14
    5     15
    
    $cat
      X26.30
    1     26
    2     27
    3     28
    4     29
    5     30
    
    $husky
      X36.40
    1     36
    2     37
    3     38
    4     39
    5     40
    

    我想使用类似于stringr::str_detect的东西来拉取名称中包含“abc”的两个列表,并省略其他列表。

    已编辑以进行格式化

    1 回复  |  直到 11 月前
        1
  •  1
  •   G. Grothendieck    11 月前

    使用 startsWith .使用基数R:

    lst[startsWith(names(lst), "abc")]
    

    subset(lst, startsWith(names(lst), "abc"))
    

    我们还可以将其与 keep_at 在咕噜声中:

    lst %>% keep_at(~ startsWith(.x, "abc"))