追踪原始角色所在的位置
Tracing where the original character was
我正在尝试创建一个函数,我可以在其中拆分一系列字母,如下所示。
SCDKSFNRGECSCDKSFNRGECSCDKSFNRGEC
我希望能够在每个 C 之后拆分序列,并且可以使用以下代码来实现:
TestSequence <- "SCDKSFNRGECSCDKSFNRGECSCDKSFNRGEC"
test <- strsplit(TestSequence, "(?<=[C])", perl = TRUE )
打印在退市后提供以下内容:
"SC" "DKSFNRGEC" "SC" "DKSFNRGEC" "SC" "DKSFNRGEC"
但是我希望能够将输出 C 追溯到它在原始序列中的位置,这将很有用,例如,如果每个字母都有一个我可以关联的数字,比如最初的 SC,我可以说 C 是整个序列中的第一个 C,下一个 SC 将有一个序列中第三个 C,依此类推。
谁能想出一种方法来追溯原始序列中拆分字符的位置?我确信有比我上面建议的更好的方法。
按照这些思路?
library(dplyr)
TestSequence <- "SCDKSFNRGECSCDKSFNRGECSCDKSFNRGEC"
fragments <- strsplit(TestSequence, "(?<=[C])", perl = TRUE) %>% unlist
data.frame(fragment = fragments) %>%
mutate(position = cumsum(nchar(fragment)))
输出:
## fragment position
## 1 SC 2
## 2 DKSFNRGEC 11
## 3 SC 13
## 4 DKSFNRGEC 22
## 5 SC 24
## 6 DKSFNRGEC 33
我正在尝试创建一个函数,我可以在其中拆分一系列字母,如下所示。
SCDKSFNRGECSCDKSFNRGECSCDKSFNRGEC
我希望能够在每个 C 之后拆分序列,并且可以使用以下代码来实现:
TestSequence <- "SCDKSFNRGECSCDKSFNRGECSCDKSFNRGEC"
test <- strsplit(TestSequence, "(?<=[C])", perl = TRUE )
打印在退市后提供以下内容:
"SC" "DKSFNRGEC" "SC" "DKSFNRGEC" "SC" "DKSFNRGEC"
但是我希望能够将输出 C 追溯到它在原始序列中的位置,这将很有用,例如,如果每个字母都有一个我可以关联的数字,比如最初的 SC,我可以说 C 是整个序列中的第一个 C,下一个 SC 将有一个序列中第三个 C,依此类推。
谁能想出一种方法来追溯原始序列中拆分字符的位置?我确信有比我上面建议的更好的方法。
按照这些思路?
library(dplyr)
TestSequence <- "SCDKSFNRGECSCDKSFNRGECSCDKSFNRGEC"
fragments <- strsplit(TestSequence, "(?<=[C])", perl = TRUE) %>% unlist
data.frame(fragment = fragments) %>%
mutate(position = cumsum(nchar(fragment)))
输出:
## fragment position
## 1 SC 2
## 2 DKSFNRGEC 11
## 3 SC 13
## 4 DKSFNRGEC 22
## 5 SC 24
## 6 DKSFNRGEC 33