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

R 如何将表函数应用于向量列表?,r,R,我是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(

我是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)
1,2,3,4:34

2,3,4,1:25

2,1,3,4:15

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


  • 非常感谢

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

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

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

    ,而不是很难将
    tt
    转换为
    as。numeric
    :-)
    tt
    本身包含数值,只是与唯一观察到的级别对应的行名和列名是字符值。oops。很抱歉,我认为您可以使用
    顺序(c(39,12,40,18,20)[1:4])
    来获取“排列”值,从而省去一些麻烦。
    tt<-table(sapply(ListPer, paste, collapse=":"))
    tt["2:1:4:3"]
    # [1] 33
    
    tt<-table(data.frame(do.call(rbind, ListPer)))
    
    tt["2","1","4","3"]
    # [1] 33