我希望能够从向量
的每个元素的右侧对第一个字符进行子串ABC20
BCD3
B1
AB2222
BX4444
所以对于我想要的小组,C,D,B,B,X ....有一个简单的方法吗?我知道有一个substr和一个numindex / charindex。所以我想我可以使用这些但不完全确定在R.
答案 0 :(得分:3)
您可以使用库Delphi XE
,
stringi
数据强>
stringi::stri_extract_last_regex(x, '[A-Z]')
#[1] "C" "D" "B" "B" "X"
答案 1 :(得分:0)
我们可以使用sub
来捕获最后一个大写字母(([A-Z])
),后跟零个或多个数字(\\d*
),直到结尾($
) string并将其替换为捕获组
\\1
)
sub(".*([A-Z])\\d*$", "\\1", x)
#[1] "C" "D" "B" "B" "X"
x <- c("ABC20", "BCD3", "B1", "AB2222", "BX4444")
答案 2 :(得分:0)
试试这个:
您的数据:
list<-c("ABC20","BCD3","B1","AB2222","BX4444")
确定职位
number_pos<-gregexpr(pattern ="[0-9]",list)
number_first<-unlist(lapply(number_pos, `[[`, 1))
提取
substr(list,number_first-1,number_first-1)
[1] "C" "D" "B" "B" "X"