小编sma*_*ape的帖子

为什么我们"使用2个堆栈实现队列"?

可能重复:
为什么要使用两个堆栈来建立队列?

我得到了这个赋值问题,要求我使用两个堆栈实现一个队列.我的问题不是如何做到,而是为什么这样做?我不是来自计算机背景,我试图找到答案,但无法真正找到原因吗?我认为你的专家可以帮助我理解实现这样一个东西有什么好处.我发现了一篇相关文章为什么要使用两个堆栈来建立队列?谈论这个,但想知道是否还有更多.

algorithm queue stack data-structures

11
推荐指数
1
解决办法
2273
查看次数

R堆积条形图绘制geom_text

我正在尝试使用ggplot绘制R中的堆积条形图.我还想在每一块酒吧中加入百分比.我试图按照职位1,2,3,但值不完全在各自的块.我的数据是dropbox中的文件.

我的代码如下:

f<-read.table("Input.txt", sep="\t", header=TRUE)

ggplot(data=f, aes(x=Form, y=Percentage, fill=Position)) + 
    geom_bar(stat="identity", colour="black") + 
    geom_text(position="stack", aes(x=Form, y=Percentage, ymax=Percentage, label=Percentage, hjust=0.5)) + 
    facet_grid(Sample_name ~ Sample_type, scales="free", space="free") + 
    opts(title = "Input_profile", 
         axis.text.x = theme_text(angle = 90, hjust = 1, size = 8, colour = "grey50"), 
         plot.title = theme_text(face="bold", size=11), 
         axis.title.x = theme_text(face="bold", size=9), 
         axis.title.y = theme_text(face="bold", size=9, angle=90),
         panel.grid.major = theme_blank(), 
         panel.grid.minor = theme_blank()) + 
    scale_fill_hue(c=45, l=80)

ggsave("Output.pdf")
Run Code Online (Sandbox Code Playgroud)

输出是 -

在此输入图像描述

任何帮助是极大的赞赏.谢谢你的帮助和时间!

r ggplot2

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

从FTP python中读取缓冲区中的文件

我试图从FTP服务器读取文件.该文件是一个.gz文件.我想知道在套接字打开时是否可以对此文件执行操作.我尝试按照两个StackOverflow问题中提到的内容来阅读文件而无需写入磁盘从FTP读取文件而不下载但未成功.

我知道如何在下载的文件中提取数据/工作,但我不确定我是否可以动态执行.有没有办法连接到网站,在缓冲区中获取数据,可能做一些数据提取和退出?

尝试StringIO时出现错误:

>>> from ftplib import FTP
>>> from StringIO import StringIO
>>> ftp = FTP('ftp://ftp.ncbi.nlm.nih.gov/pub/pmc/PMC-ids.csv.gz')

Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
ftp = FTP('ftp://ftp.ncbi.nlm.nih.gov/pub/pmc/PMC-ids.csv.gz')
File "C:\Python27\lib\ftplib.py", line 117, in __init__
self.connect(host)
File "C:\Python27\lib\ftplib.py", line 132, in connect
self.sock = socket.create_connection((self.host, self.port), self.timeout)
File "C:\Python27\lib\socket.py", line 553, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno 11004] getaddrinfo failed
Run Code Online (Sandbox Code Playgroud)

我只需要知道如何将数据放入某个变量并在其上循环,直到读取FTP文件为止.

感谢您的时间和帮助.谢谢!

python ftp stream ftplib

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

三面骰子的隐马尔可夫模型

我被教授HMM并且给了这个家庭作业问题.我理解了它的一部分,但我不确定它是否正确.问题是:

考虑一个不同的游戏,经销商不会翻转硬币,而是使用标签1,2和3滚动三面模具.(尽量不要考虑三面模具的外观.)经销商已经两个装载的骰子D1和D2.对于每个骰子Di,滚动数字i的概率是1/2,并且其他两个结果中的每一个的概率是1/4.在每个回合,经销商必须决定是(1)保持相同的骰子,(2)切换到另一个骰子,或(3)结束游戏.他选择(1)概率为1/2,其他每个概率为1/4.开始时,经销商以相同的概率选择两个骰子中的一个.

  • 为这种情况提供HMM.指定字母表,状态,转换概率和发射概率.包括开始状态开始,并假设HMM以状态开始以概率1开始.还包括结束状态结束.

  • 假设您观察到以下的模具辊序列:1 1 2 1 2 2.找到最能说明辊子顺序的状态序列.这个序列的概率是多少?通过完成Viterbi表找到答案.在单元格中包含回溯箭头,以便您可以追溯状态序列.以下某些事实可能有用:

    log2(0)=-∞log2
    (1/4)= -2
    log2(1/2)= -1
    log2(1)= 0

  • 对于这种模具辊序列,实际上存在两种最佳状态序列.另一个国家的序列是什么?

如果我对第一部分没有错,我必须做类似这里的事情http://en.wikipedia.org/wiki/Hidden_​​Markov_model#A_concrete_example但是我没有得到假设以概率1开始的东西.

另外,我不知道在问题的第二部分我要为维特比表做些什么.如果任何身体可以给我一些提示或线索,那将是伟大的.

algorithm probability bioinformatics hidden-markov-models

6
推荐指数
1
解决办法
984
查看次数

如何在XSLT中包装文本以适应窗口

我使用XSLT 2.0从XML中提取数据.数据有很长的行,我想通过自动断行来使它们适合窗口大小.

在XSLT中有可能吗?

xml xslt word-wrap xslt-2.0

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

在perl中使用API​​粘贴UTF-8

有点新Perl.我使用Perl Web API来获取数据.错误是"application/xml; charset = UTF-8".我使用'use utf8'但似乎不起作用.它被卡住的线看起来像这样

my @candidates = $c->bookmarks_for(start => 1, tag =>'pubmed');
Run Code Online (Sandbox Code Playgroud)

你能帮我么.

谢谢Sammed

perl

4
推荐指数
1
解决办法
169
查看次数

绘制不同类型的条形图ggplot

我正在尝试绘制这些数据的条形图

我到目前为止写的R脚本如下:

library(ggplot2)
f<-read.table("Coverage_test", sep="\t", header=TRUE)
f$Coverage <- factor(f$Coverage, levels=unique(as.character(f$Coverage)))
g = ggplot(data=f, aes(x=Coverage, y=Variable_counts, group=Form, fill=Type)) 
+ geom_bar(position="dodge", stat="identity", colour="black") 
+ facet_grid( ~ Sample_name, scales="free") + opts(title = "Coverage", axis.text.x = theme_text(angle = 90, hjust = 1, size = 8, colour = "grey50")) 
+ ylab("Number of variables") + scale_fill_hue() + scale_y_continuous(formatter="comma")
ggsave("Figure_test_coverage.pdf")
Run Code Online (Sandbox Code Playgroud)

此代码的输出如下:

在此输入图像描述

我的问题是:有没有办法显示基于图的两个变量的行为的差异.每个x轴变量有四个条.我已经选择通过'Type'填充颜色,这显示了'Type'(一个变量)在我的数据中的表现.但我还想展示变量'Form'在我的数据中的表现.我已将它们分组在我的代码'group = Form'中,但无法在实际图形中进行区分(视觉上).这可以通过显示一个变量的不同颜色和另一个变量的不同线型(实线和虚线)在线图中完成.如下所示: 在此输入图像描述.

我想知道'Form'变量是否可以用不同的颜色显示,或者至少可以在它们各自的条形或任何可能的东西下面命名?任何帮助是极大的赞赏.

谢谢.

r ggplot2

3
推荐指数
1
解决办法
2599
查看次数

HMM用于解决给定的硬币输出

我在HMM上有这个任务问题,我已经解决了.我想知道我是否正确.问题是:

假设一个不诚实的经销商有两个硬币,一个公平,一个有偏见; 有偏见的硬币的概率为1/4.假设经销商从不切换硬币.哪枚硬币更有可能产生序列HTTTHHHTTTTHTHHTT?知道log 2(3)= 1.585 可能是有用的

我计算了公平硬币和有偏硬币的P值.公平硬币的P为7.6*10 -6,而偏硬币的P为3.43*10 -6.我没有使用日志术语,如果我以其他方式解决它,可以使用它.因此,我得出结论,给定序列更可能是由公平的硬币产生的.

我对吗?

任何帮助是极大的赞赏.

algorithm probability bioinformatics hidden-markov-models

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

使用Perl在mysql中使用空格查询字符串

我认为这个问题已经被问到了php,现在我要求它用于perl.我有2个阵列.我用它来查询我的数据库.现在碰巧这些术语不仅仅是一个单词,因此它可能有空格.

我声明了2个变量,比如$ foo和$ bar.我有2个for循环,它将文件1中的每个术语组合到文件2中的每个术语并查询数据库.每次每个术语都进入变量.数据库是文本索引的.我正在使用DBI模块.我的查询是这样的:

my $query_handle = $connect->prepare("SELECT value FROM value_table WHERE
MATCH(column_text_indexed) AGAINST ('+"$foo" +"$bar"' in boolean mode)") || die 
"Prepare failed:$DBI::errstr\n";
Run Code Online (Sandbox Code Playgroud)

它给出以下错误:

Scalar found where operator expected at program.pl line 32, near ""SELECT value FROM value_table
WHERE MATCH(column_text_indexed) AGAINST ('+"$foo"
        (Missing operator before $foo?)
String found where operator expected at program.pl line 32, near "$foo" +""
    (Missing operator before " +"?)
Scalar found where operator expected at program.pl line 32, near "" +"$bar"
    (Missing operator before $bar?)
String …
Run Code Online (Sandbox Code Playgroud)

mysql perl full-text-search dbi

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

使用perl进行XML解析

我试图研究我所遇到的简单问题但却做不到.我试图从Web获取XML格式的数据并使用perl解析它.现在,我知道如何循环重复元素.但是,当它不重复时我会被困住(我知道这可能是愚蠢的).如果元素重复,我把它放在数组中并获取数据.但是,当只有一个元素抛出时,错误说"不是数组引用".我希望我的代码可以在两个时间解析(对于单个和多个元素).我使用的代码如下:

use LWP::Simple;
use XML::Simple;
use Data::Dumper;

open (FH, ">:utf8","xmlparsed1.txt");

my $db1 = "pubmed";
my $query  = "13054692";
my $q = 16354118;          #for multiple MeSH terms
my $xml = new XML::Simple;

$urlxml = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=$db1&id=$query&retmode=xml&rettype=abstract";
$dataxml = get($urlxml);
$data = $xml->XMLin("$dataxml");
#print FH Dumper($data);
foreach $e(@{$data->{PubmedArticle}->{MedlineCitation}->{MeshHeadingList}->{MeshHeading}})
     {
       print FH $e->{DescriptorName}{content}, ' $$ ';
     } 
Run Code Online (Sandbox Code Playgroud)

另外,我可以做一些事情,以便在最后一个元素之后不会打印分隔符$$吗?我也尝试了以下代码:

$mesh = $data->{PubmedArticle}->{MedlineCitation}->{MeshHeadingList}->{MeshHeading};
while (my ($key, $value) = each(%$mesh)){
    print FH "$value";
}
Run Code Online (Sandbox Code Playgroud)

但是,这会打印所有的子节点,我只想要内容节点.

perl

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