我有一个由多个二进制数组成的向量。由于这些已经被过滤,所以也知道所有都大于 0。
v <- c(1, 10, 11, 110, 10000, 101000, 100100000, 100001)
现在我想要一个 result_vector
(向量,因为输入向量是数据框中的一列)给我向量 1
最后一次出现的位置/位置>v。我正在尝试 stringr::str_locate(as.Charachter(v), "1")[,2]
但它给了我这个向量第一次出现的结束位置。 stringr::str_locate_all
在列表中给出结果,因此在上下文中没有用处。而且,我想要这个位置从倒数开始。但是,如果我可以从左侧提取位置,则可以通过从 nchar(as.Charachter(v)) 中减去该位置来转换为反向。请指导我如何才能得到类似的结果
result_vector = c(1, 2, 1, 2, 5, 4, 6, 1)
最佳答案
一个stringi
选项可能是:
stri_locate_first(stri_reverse(v), fixed = "1")[, 1]
[1] 1 2 1 2 5 4 6 1
关于r - 如何从向量中提取最后一次出现的特定 'string',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64641268/