Как последовательно получить список коротких строк из длинной строки в R?

Вот пример

x<-"ABCDEFGH"
x
[1] "ABCDEFGH"

Моя цель состоит в том, чтобы последовательно извлекать строки с nchar=4 до конца x , таким образом, результат будет:

> df
    xx
1 ABCD
2 BCDE
3 CDEF
4 DEFG
5 EFGH

Есть ли простой способ достичь этого в R?

Всего 2 ответа


Вот решение, в котором вам просто нужно указать количество символов, которые вы хотите извлечь из x в качестве переменной n .

n<-4
sapply (1:(nchar(x)-(n-1)), function(i) substr(x,i,i+(n-1)))

#"ABCD" "BCDE" "CDEF" "DEFG" "EFGH"

Вот еще один подход:

x<-"ABCDEFGH"

N <- 4

substring(x, seq(1, nchar(x)-N+1, 1), seq(N, nchar(x), 1))
[1] "ABCD" "BCDE" "CDEF" "DEFG" "EFGH"

Есть идеи?

10000