我有一个这样的df (大约有800,000行)
# 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是矢量化的,所以我不想使用循环来做这件事,因为这将花费太长的时间。我认为这个问题在前面的问题中肯定已经解决了,但我找不到解决方案。另外,如果有完全不同的方式来处理这个问题,请告诉我。
发布于 2019-02-28 01:30:20
下面是一个例子。这就是你的意思吗?
S = c("appleap", "tapppapp")
P = "ap"
lapply(gregexpr(P, S), function(x) as.vector(x))
#[[1]]
#[1] 1 6
#[[2]]
#[1] 2 6https://stackoverflow.com/questions/54910866
复制相似问题