R 如何将字符串拆分为3个重叠集

R 如何将字符串拆分为3个重叠集,r,R,如果我有多个字符串,如: skhdsfiiuwkncyeuhrsl sdskkjheocbsill sldkjflsdkjb 如何将输出编程为重叠的三元组,例如,我希望它输出: skh, khd, hds, ..., rsl sds, dsk, skk, ..., ill sld, ldk, dkj, ..., kjb 子字符串工作: x = c("skhdsfiiuwkncyeuhrsl", "sdskkjheocbsill", "sldkjflsdkjb", "ab") n = 3 la

如果我有多个字符串,如:

skhdsfiiuwkncyeuhrsl
sdskkjheocbsill
sldkjflsdkjb
如何将输出编程为重叠的三元组,例如,我希望它输出:

skh, khd, hds, ..., rsl
sds, dsk, skk, ..., ill
sld, ldk, dkj, ..., kjb

子字符串
工作:

x = c("skhdsfiiuwkncyeuhrsl", "sdskkjheocbsill", "sldkjflsdkjb", "ab")
n = 3
lapply(x, function(z) 
  if ((nc <- nchar(z)) >= n) 
    substring(z, seq(1, nc - n + 1), seq(n, nc)) 
  else 
    character(0)
)

子字符串
工作:

x = c("skhdsfiiuwkncyeuhrsl", "sdskkjheocbsill", "sldkjflsdkjb", "ab")
n = 3
lapply(x, function(z) 
  if ((nc <- nchar(z)) >= n) 
    substring(z, seq(1, nc - n + 1), seq(n, nc)) 
  else 
    character(0)
)
从中汲取灵感,以下是一行:

strings <- c("skhdsfiiuwkncyeuhrsl",
"sdskkjheocbsill",
"sldkjflsdkjb")

sapply(strings, function(x) substring(x, seq(1,nchar(x)-2,1), seq(3,nchar(x),1)))

# $skhdsfiiuwkncyeuhrsl
#  [1] "skh" "khd" "hds" "dsf" "sfi" "fii" "iiu" "iuw" "uwk" "wkn" "knc" "ncy" "cye" "yeu" "euh"
# [16] "uhr" "hrs" "rsl"

# $sdskkjheocbsill
#  [1] "sds" "dsk" "skk" "kkj" "kjh" "jhe" "heo" "eoc" "ocb" "cbs" "bsi" "sil" "ill"

# $sldkjflsdkjb
#  [1] "sld" "ldk" "dkj" "kjf" "jfl" "fls" "lsd" "sdk" "dkj" "kjb"
strings从中汲取灵感,这里有一句话:

strings <- c("skhdsfiiuwkncyeuhrsl",
"sdskkjheocbsill",
"sldkjflsdkjb")

sapply(strings, function(x) substring(x, seq(1,nchar(x)-2,1), seq(3,nchar(x),1)))

# $skhdsfiiuwkncyeuhrsl
#  [1] "skh" "khd" "hds" "dsf" "sfi" "fii" "iiu" "iuw" "uwk" "wkn" "knc" "ncy" "cye" "yeu" "euh"
# [16] "uhr" "hrs" "rsl"

# $sdskkjheocbsill
#  [1] "sds" "dsk" "skk" "kkj" "kjh" "jhe" "heo" "eoc" "ocb" "cbs" "bsi" "sil" "ill"

# $sldkjflsdkjb
#  [1] "sld" "ldk" "dkj" "kjf" "jfl" "fls" "lsd" "sdk" "dkj" "kjb"

strings
a
a到目前为止你都尝试了什么?类似于
sapply(1:(nchar(x)-2),function(i)substring(x,i,i+2))
也许吧?到目前为止你试过什么?类似于
sapply(1:(nchar(x)-2),函数(i)子字符串(x,i,i+2))
也许?@Frank Thank,复制了错误的一行--我更正了这些错误:)这怎么可以用来制作四个或五个呢?@Frank Thank,复制了错误的一行--我更正了这些错误:)这怎么可以用来制作四个或五个呢?