gpt4 book ai didi

r - 如何将表函数应用于向量列表?

转载 作者:行者123 更新时间:2023-12-02 03:34:32 24 4
gpt4 key购买 nike

我是 R 的新手,我有以下代码:

Permutation<-function(sequence,k)
{
List <- list()
numberkmers <-length(sequence)-k+1
for (i in 1:numberkmers)
{
j <-i+k-1
kmer <- sequence[i:j]
kmertmp <- sequence[i:j]
kmer <-sort(kmer)
perlist <-c()
for (l in 1:k)
{
index <- which(kmer==kmertmp[l])
perlist <- c(perlist,index)
}
List[[i]] <- perlist
}
return(List)
}
sequence <- qnorm(runif(1000),100,15)
ListPer <- Permutation(sequence,4)

此代码根据序列中 k 个数字的顺序生成排列,即如果序列是 {39,12,40,18,20}k=4 那么根据 39,12,40,20 的排序顺序,第一个排列是 3,1,4,2 ..

我有两个问题:

  1. ListPer 是序列中发生的所有排列(即向量)的列表,我想将表函数应用于列表中的所有排列,因此最终结果将是:

    P   : occur

    1,2,3,4: 34

    2,3,4,1: 25

    2,1,3,4: 15

  2. 结果表是否用作查找表,以便我可以为任何统计分析检索一个排列的出现次数。

非常感谢

最佳答案

您有一些使用 table() 的选项。您可以连接这些值并进行计数

tt<-table(sapply(ListPer, paste, collapse=":"))
tt["2:1:4:3"]
# [1] 33

或者您可以创建一个 4D 计数数组

tt<-table(data.frame(do.call(rbind, ListPer)))

然后你可以用

算出
tt["2","1","4","3"]
# [1] 33

请注意,这些是字符,因为“表”索引结果是字符向量

关于r - 如何将表函数应用于向量列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24480880/

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