【问题标题】:Extracting the nth character from a vector of strings [duplicate]从字符串向量中提取第 n 个字符
【发布时间】:2013-11-19 15:11:49
【问题描述】:

我有一个如下所示的行向量:

1   118_o_m_n_a.jpg
2   122_m_f_h_a.jpg
3   152_y_f_n_a.jpg
4   160_y_m_h_a.jpg
5   083_o_m_a_a.jpg

如何提取所有条目,例如,第 9 个元素(字母)为“n”(或“h”,或在本例中为“a”)?

【问题讨论】:

    标签: r string


    【解决方案1】:

    你可以使用substr提取第9个字母:

    substr(c("122_m_f_h_a.jpg", "152_y_f_n_a.jpg"), 9, 9)
    [1] "h" "n"
    

    使用== 并为任务的其余部分设置子集。

    【讨论】:

      【解决方案2】:

      一种方法是使用匹配字符串开头的正则表达式("^"),后跟任何类型的 8 个字符 (".{8}"),最后在第 9 个位置上是字符 "n"

      v <- c("118_o_m_n_a.jpg", "122_m_f_h_a.jpg", "152_y_f_n_a.jpg", 
             "160_y_m_h_a.jpg", "083_o_m_a_a.jpg")
      
      ## Find the indices of matching elements
      grep("^.{8}n", v)
      # [1] 1 3
      
      ## Return matching elements
      grep("^.{8}n", v, value=TRUE)
      # [1] "118_o_m_n_a.jpg" "152_y_f_n_a.jpg"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-21
        • 1970-01-01
        • 2022-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多