我有一个这样的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
已向量化,因此我不想使用循环来执行此操作,因为这将花费很长时间。我认为以前的问题一定已经解决了这个问题,但是我找不到解决方案。另外,如果有完全不同的处理方法,请告诉我。
答案 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