1 B > 3 C > 2 A" 我有一个计算每个字符串实例的函-6ren">
gpt4 book ai didi

r - 使用 R 计算字符串中的连续模式

转载 作者:行者123 更新时间:2023-12-04 02:09:29 26 4
gpt4 key购买 nike

我正在尝试编写一个函数来计算模式的连续实例数。例如,我想要字符串

string<-"A>A>A>B>C>C>C>A>A"

被转化为
"3 A > 1 B > 3 C > 2 A"

我有一个计算每个字符串实例的函数,见下文。但是并没有达到我想要的排序效果。任何想法或指示?

谢谢,

电阻

现有功能:
fnc_gen_PathName <- function(string) {
p <- strsplit(as.character(string), ";")
p1 <- lapply(p, table)
p2 <- lapply(p1, function(x) {
sapply(1:length(x), function(i) {
if(x[i] == 25){
paste0(x[i], "+ ", names(x)[i])
} else{
paste0(x[i], "x ", names(x)[i])
}
})
})
p3 <- lapply(p2, function(x) paste(x, collapse = "; "))
p3 <- do.call(rbind, p3)
return(p3)
}

最佳答案

正如@MrFlick 所评论的,您可以使用 rle 尝试以下操作和 strsplit

with(rle(strsplit(string, ">")[[1]]), paste(lengths, values, collapse = " > "))
## [1] "3 A > 1 B > 3 C > 2 A"

关于r - 使用 R 计算字符串中的连续模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34023617/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com