计算R中连续字符的不同长度子字符串
我有一个数据集,由大量长度为12的字符串组成,这些字符串是从两个状态的字母表(z,x)中提取的。这里有两个例子计算R中连续字符的不同长度子字符串,r,counting,substring,R,Counting,Substring,我有一个数据集,由大量长度为12的字符串组成,这些字符串是从两个状态的字母表(z,x)中提取的。这里有两个例子 data <- c("zzxzzzxzzzzx","zzzxxzzzzzzx") data不确定这是否是您想要的 library(stringi) table(unlist(stri_extract_all_regex(data, '(?:(z+))\\1*'))) # zz zzz zzzz zzzzzz # 1 2 1
data <- c("zzxzzzxzzzzx","zzzxxzzzzzzx")
data不确定这是否是您想要的
library(stringi)
table(unlist(stri_extract_all_regex(data, '(?:(z+))\\1*')))
# zz zzz zzzz zzzzzz
# 1 2 1 1
还是这个
table(unlist(lapply(stri_extract_all_regex(data,
'(?:(z+))\\1*'), unique)))
# zz zzz zzzz zzzzzz
# 1 2 1 1
我认为OP是在寻找/可能成对重叠/子串的计数。@BadZen根据显示的预期频率,我们通过使用代码得到它哦,是的,你是对的。我误读了第二行的意思是“2(在数据[1]中)”。但它是3偶数,而不是2。没关系。这里面的一些有用的代码肯定能解决问题(所以非常感谢):但是我恐怕不知道它为什么会起作用。有可能对符号位“(?:etc正在做什么有一些直觉吗?它会帮助我(也许还有其他人)推广到其他类似的问题。
table(unlist(strsplit(gsub('x{1,2}',' ',data),' ')))