base r
bu basit tek liner strsplit yararlanır ve ardından grepl ve oldukça sağlam, ama jj
ait jjjjjj
3 olarak birçok gibi eşleşmeleri saymak varsa kıracak. Bunu mümkün kılan desen maç @JoshOBriens excellent Q&A şöyledir:
sum(grepl("jj" , unlist(strsplit(x , "(?<=.)(?=jj)" , perl = TRUE))))
# Examples....
f<- function(x){
sum(grepl("jj" , unlist(strsplit(x , "(?<=.)(?=jj)" , perl = TRUE))))
}
#3 matches here
xOP <- c("ajjss","acdjfkj","auyjyjjksjj")
f(xOP)
# [1] 3
#4 here
x1 <- c("ajjss","acdjfkj", "jj" , "auyjyjjksjj")
f(x1)
# [1] 4
#8 here
x2 <- c("jjbjj" , "ajjss","acdjfkj", "jj" , "auyjyjjksjj" , "jjbjj")
f(x2)
# [1] 8
#Doesn't work yet with multiple jjjj matches. We want this to also be 8
x3 <- c("jjjj" , "ajjss","acdjfkj", "jj" , "auyjyjjksjj" , "jjbjj")
f(x3)
# [1] 7
bu harika teşekkürler. Dizinin uzunluğunu hesapladığınızı fark ettim - data.frame'de frekans/uzunluk diyebilir miyim? Bu çok yararlı olurdu. Teşekkürler. – brucezepplin
oh üzgünüm - demek istediğim, her dizge için dizginin uzunluğuna bölünen alt dizinin sıklığını döndürebilir miyim? – brucezepplin
Üzgünüz - I; m Alma Hatası (df $ x): 'nchar()' bir karakter vektörü gerektirir – brucezepplin