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