小编dog*_*hat的帖子

colMeans在R中运行并遇到大小为1的列的问题

我有一个关于colMeans功能的问题.是否有一个版本,当它遇到长度为1的列时不会返回错误?例如

temp<-cbind(c(2,2),c(3,4))
colMeans(temp)

[1] 2.0 3.5
Run Code Online (Sandbox Code Playgroud)

但对于这一个

temp2<-c(2,2)
colMeans(temp2)

Error in colMeans(temp2) : 
'x' must be an array of at least two dimensions
Run Code Online (Sandbox Code Playgroud)

但是,如果我将函数mean应用于每一列,它会正确地得到值2和2.

我写了一个函数来做到这一点

testfun<-function(i,x){
mean(x[,i])
}
sapply(1:ncol(x),testfun,x)
Run Code Online (Sandbox Code Playgroud)

它给出与colMeans相同的结果.
我听说colMeans应该比这种方法快得多.那么,当我的列大小为1时,是否有一个colMeans版本可以使用.

r

7
推荐指数
1
解决办法
2万
查看次数

在python中使用后缀树

我是python的新手,我开始使用后缀树.我可以构建它们,但是当字符串变大时我遇到了内存问题.我知道它们可以用于处理大小为4 ^ 10或4 ^ 12的DNA字符串,但每当我尝试实现一种方法时,我最终会遇到内存问题.

这是我生成字符串和后缀树的代码.

import random

def get_string(length):
    string=""
    for i in range(length):
        string += random.choice("ATGC")
    return string

word=get_string(4**4)+"$"

def suffixtree(string):
    for i in xrange(len(string)):
        if tree.has_key(string[i]):
            tree[string[i]].append([string[i+1:]][0])
        else:
            tree[string[i]]=[string[i+1:]]
    return tree

tree={}
suffixtree(word)
Run Code Online (Sandbox Code Playgroud)

当我达到4**8左右时,我遇到了严重的内存问题.我对此很陌生,所以我肯定我错过了保存这些东西的东西.任何建议将不胜感激.

作为注释:我想进行字符串搜索以在非常大的字符串中查找匹配的字符串.搜索字符串匹配大小为16.因此,这将在大字符串中查找大小为16的字符串,然后移动到下一个字符串并执行另一个搜索.由于我将进行大量搜索,因此建议使用后缀树.

非常感谢

python hash suffix-tree

5
推荐指数
1
解决办法
2626
查看次数

标签 统计

hash ×1

python ×1

r ×1

suffix-tree ×1