gpt4 book ai didi

r - 从数字序列中获取法术和统计数据

转载 作者:行者123 更新时间:2023-12-05 08:36:12 26 4
gpt4 key购买 nike

例如,我有一个字符串,我想从中提取拼写,

   A<- c('000001111000', '0110011', '110001')

我想以序列格式获取0和1的连续拼写长度。然后使用法术的长度,我想计算描述性统计数据,如均值、模式、sd 等(spell_0 和 spell_1 是 A 向量中的序列。

例如,

    spell_0  spell_1   mean_spell_0   mean_spell_1

5-3 4 4 4
1-2 2-2 1.5 2
3 2-1 3 1.5

有什么建议吗?

最佳答案

你的问题实际上包括几个问题。

在将字符串拆分为字符后,您首先需要从原始向量中获取不同的序列。正如评论中指出的那样,这可以通过 rle 来实现。然后,对于示例中的每个值(“0”和“1”),您需要获取与该值对应的每个序列的 lengths。然后您需要将它们放入您想要的格式(尽管这可能不是最合适的。

这是我的提议:

seqA <- lapply(strsplit(A, ""), rle)

do.call(cbind,lapply(c("0", "1"), # this can be made more general, for example using unique(unlist(strsplit(A, "")))
function(i){
do.call(rbind, lapply(seqA,
function(x){
lesSeq <- x$lengths[x$values==i]
res <- data.frame(paste(lesSeq, collapse="-"), mean(lesSeq))
colnames(res) <- paste(c("spell", "mean_spell"), i, sep="_")
return(res)
}))
}))[, c(1, 3, 2, 4)] # this rearrangment may not be needed...
# spell_0 spell_1 mean_spell_0 mean_spell_1
#1 5-3 4 4.0 4.0
#2 1-2 2-2 1.5 2.0
#3 3 2-1 3.0 1.5

关于r - 从数字序列中获取法术和统计数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69709370/

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