R在字符串列表中找到所有字符匹配的索引

时间:2019-02-27 17:06:17

标签: r string indexing match

我有一个这样的df(大约80万行)

 #    str

   # 1  .||.

   # 2  .

   # 3  .|..

   # 4  ..

我想要一个这样的新数据框(用.记录每个字符串中的位置)(很抱歉列的格式)

#   str     loc

   # 1  .||.    1 4

   # 2  .       1

   # 3  .|..    1 3 4

   # 4  ..      1 2

我可以使用gregexpr(".", str, fixed = TRUE)获取位置,但是我不知道如何获得gregexpr输出的第一部分,而没有三个属性部分。稍后,我将在其他计算中使用位置向量。由于gregexpr已向量化,因此我不想使用循环来执行此操作,因为这将花费很长时间。我认为以前的问题一定已经解决了这个问题,但是我找不到解决方案。另外,如果有完全不同的处理方法,请告诉我。

1 个答案:

答案 0 :(得分:0)

这是一个例子。这是你的意思吗?

S = c("appleap", "tapppapp")
P = "ap"

lapply(gregexpr(P, S), function(x) as.vector(x))
#[[1]]
#[1] 1 6

#[[2]]
#[1] 2 6