str_extract 在向量中按位置

str_extract in a vector by position

我有一个这样的向量

cod <- c("6W41_CH", "6W41_CL" ,"6WPS_AH", "7C01_BC", "7C01_BD", "7C01_BL", "7C2L_AH", "7C2L_BI", "7C2L_CJ",
"7C8V_BA", "7C8W_BA", "7CAH_AD")

我正在进行迭代,每次我都希望 cod[i] 只包含第 6 个位置的字母。我试图使用 str_extract。我该怎么办?

使用 substr,基于位置的提取应该更快、更有效。我们可以提供 startstop 位置,即 6

substr(cod, 6, 6)
#[1] "C" "C" "A" "B" "B" "B" "A" "B" "C" "B" "B" "A"

str_sub

library(stringr)
str_sub(cod, 6, 6)
#[1] "C" "C" "A" "B" "B" "B" "A" "B" "C" "B" "B" "A"

如果我们需要使用 str_extract,请指定一个正则表达式环视,说明我们需要提取 5 个字符后的下一个字符

str_extract(cod, '(?<=^.{5}).')
#[1] "C" "C" "A" "B" "B" "B" "A" "B" "C" "B" "B" "A"