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

任何帮助是极大的赞赏.谢谢你的帮助和时间!
我试图从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文件为止.
感谢您的时间和帮助.谢谢!
我被教授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开始的东西.
另外,我不知道在问题的第二部分我要为维特比表做些什么.如果任何身体可以给我一些提示或线索,那将是伟大的.
我使用XSLT 2.0从XML中提取数据.数据有很长的行,我想通过自动断行来使它们适合窗口大小.
在XSLT中有可能吗?
有点新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
我正在尝试绘制这些数据的条形图
我到目前为止写的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'变量是否可以用不同的颜色显示,或者至少可以在它们各自的条形或任何可能的东西下面命名?任何帮助是极大的赞赏.
谢谢.
我在HMM上有这个任务问题,我已经解决了.我想知道我是否正确.问题是:
假设一个不诚实的经销商有两个硬币,一个公平,一个有偏见; 有偏见的硬币的概率为1/4.假设经销商从不切换硬币.哪枚硬币更有可能产生序列
HTTTHHHTTTTHTHHTT?知道log 2(3)= 1.585 可能是有用的
我计算了公平硬币和有偏硬币的P值.公平硬币的P为7.6*10 -6,而偏硬币的P为3.43*10 -6.我没有使用日志术语,如果我以其他方式解决它,可以使用它.因此,我得出结论,给定序列更可能是由公平的硬币产生的.
我对吗?
任何帮助是极大的赞赏.
我认为这个问题已经被问到了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) 我试图研究我所遇到的简单问题但却做不到.我试图从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)
但是,这会打印所有的子节点,我只想要内容节点.