这是我试图解决无关的问题"为什么我的系统调用不能在我用pp包装的Perl程序中工作?" 我在linux系统上创建了一个简单的Perl脚本:
new-net:~/scripts # cat ls_test.pl
@ls_out = `ls -l`;
map { print "$_\n" } @ls_out;
$out = `sh out_test.sh`;
print "$out\n";
Run Code Online (Sandbox Code Playgroud)
此脚本调用一个简单的shell文件:
new-net:~/scripts # cat out_test.sh
echo "I'm here"
Run Code Online (Sandbox Code Playgroud)
我使用pp将Perl脚本和shell脚本一起打包到ls_test中:
new-net:~/test # unzip -l ls_test
Archive: ls_test
Length Date Time Name
-------- ---- ---- ----
0 07-13-09 16:41 script/
436 07-13-09 16:41 MANIFEST
214 07-13-09 16:41 META.yml
93 07-13-09 16:41 script/ls_test.pl
538 07-13-09 16:41 script/main.pl
16 07-13-09 16:20 out_test.sh
-------- -------
1297 6 files
如果我在其他空目录中运行压缩文件,则找不到shell脚本:
new-net:~/test # ./ls_test …
我必须从Perl脚本创建一个exe.我安装了
ActivePerl-5.14.2.1402-MSWin32-x86-295342.msi
Run Code Online (Sandbox Code Playgroud)
我该如何安装pp?
我的Windows 7 64bit上的perl版本是5.16.2,我无法安装PAR:Packer.我尝试过活动的perl和草莓perl,两者都有同样的错误.你能给我一些建议吗?以下是我的经验:
我试过ppm install PAR:Packer,版本1.013,但是当我使用pp时,我得到了错误:
Perl lib version (5.16.2) doesn't match executable version (v5.16.0).
Run Code Online (Sandbox Code Playgroud)
我也试过cpan install PAR:Packer,版本1.014.但是我在安装过程中遇到了错误.弹出窗口显示:par.exe has stopped working.然后命令提示符出错:
C:\Perl64\bin\perl.exe -Mblib run_with_inc.pl par.exe -q -B -Oparldyn.exe
system(par.exe -I C:\Users\PAR-Packer-1.014\blib\arch -I C:\Users\PAR-Packer-1.014\blib\lib - IC:/Perl64/site/lib -IC:/Perl64/lib -I. -q -B -Oparldyn.exe) failed:
dmake.exe: Error code 255, while making 'parldyn.exe'
dmake.exe: Error code 255, while making 'subdirs'
Run Code Online (Sandbox Code Playgroud)
我已经广泛搜索了,但由于还没有找到解决方案,所以非常感谢任何帮助,非常感谢!
我有一个问题,我在分类树中主要使用分类数据,设置为一类因子.我正在使用partykitR中的软件包,而不像party之前的答案那样建议前一个软件包更适合处理图形输出.
我的真实数据集中没有很多节点(大约7个),但是我对一些变量有很多因子水平,我遇到的问题是分裂左侧的因子水平和右侧的因子水平是相互干扰.具体而言,这是因为因子水平列表的水平方向与因子水平的长度相结合.
我可以使用MASS包中的Aids2数据集重现该问题.这是一个无意义的示例,但它会生成我想要解决的行为
library("partykit")
SexTest <- ctree(sex ~ ., data=Aids2)
plot(SexTest)
Run Code Online (Sandbox Code Playgroud)
如果查看节点1的节点拆分信息,您将看到我描述的行为:
在我的真实数据框架中,缩小字体仅在我将其降低到4点时才有效,这是不可读的.
有没有办法为该字符串定义文本框,并启用文本换行?我已经查看par并gpar尝试找到解决方案,但一直没有成功.另一种适合的选择是错开每个节点的因子信息的垂直位置,使它们一个位于另一个之下.
当我运行以下命令从Perl脚本中创建可执行文件时:
pp -o process_target_mode_data Process_Target_Mode_Data.pl
Run Code Online (Sandbox Code Playgroud)
我得到以下错误输出:
Perl lib version (5.12.2) doesn't match executable version (v5.12.0) at /home/Neil/ActivePerl-5.12/lib/Config.pm line 50.
Compilation failed in require at /home/Neil/ActivePerl-5.12/lib/Errno.pm line 8.
BEGIN failed--compilation aborted at /home/Neil/ActivePerl-5.12/lib/Errno.pm line 8.
Compilation failed in require at /home/Neil/ActivePerl-5.12/lib/File/Temp.pm line 148.
BEGIN failed--compilation aborted at /home/Neil/ActivePerl-5.12/lib/File/Temp.pm line 148.
Compilation failed in require at /home/Neil/ActivePerl-5.12/lib/Archive/Zip.pm line 14.
BEGIN failed--compilation aborted at /home/Neil/ActivePerl-5.12/lib/Archive/Zip.pm line 14.
Compilation failed in require at -e line 459.
/home/Neil/ActivePerl-5.12/site/bin/pp: Failed to extract a parl from 'PAR::StrippedPARL::Static' …Run Code Online (Sandbox Code Playgroud) par 声明为:
par :: a -> b -> b
Run Code Online (Sandbox Code Playgroud)
请注意,该论点被抛弃了.为了使用par,你需要多次使用同一个表达式.
如果它的目的是并行执行a和b,为什么它不是这样定义的?:
par :: (a, b) -> (a, b)
Run Code Online (Sandbox Code Playgroud)
获取(未评估的)表达式的元组并返回相同的表达式 - 同时它们可能在后台线程上实现.
似乎后者的模型比前者简单.为什么选择这样的设计?
我想在图的上部绘制二叉树,并在第二部分(底部)制作第二个二叉树。下面是一些示例代码来显示,树的图完全忽略了由设置的分区选项par()
library("party")
### regression
airct <- ctree(Ozone ~ ., data = subset(airquality, !is.na(Ozone)))
### classification
irisct <- ctree(Species ~ .,data = iris)
par(mfrow = c(2, 1))
plot(airct)
plot(irisct)
Run Code Online (Sandbox Code Playgroud)
此代码不会在同一图(页面)中绘制两棵树。我该如何纠正?
即使遵循非常详细的答案在这种情况下也不起作用:由 'plot' 和 'ggplot' 并排生成的绘图 ctree 的绘图会忽略所有已建立的选项。
我有一个由7个图组成的布局,一个在顶部,另一个6在第一个图的3x2矩阵下方展开。在我的布局中,这些图完全在一起,我想在第一个图和其他图之间留一点点高。我如何在R中做到这一点?
layout(matrix(c(1,1,2,3,4,5,6,7), 4, 2, byrow = T))
par(mar = c(0,0,0,0), oma = c(5,4,0.5,0.5), las =1)
plot(1:10, axes = T, type = "n", xlim = c(0,30), ylim = c(-3,2), las =1)
mtext(letters[1], side = 3, line = -1.5, adj = 0.025)
for (i in 2:7){
plot(1:10, axes = F, type = "n", xlim = c(0,30), ylim = c(-3,1.8))
mtext(letters[i], side = 3, line = -1.5, adj = 0.025)
if (i %in% c(6,7))
axis(side = 1)
if (i %in% c(2,4,6))
axis(side = …Run Code Online (Sandbox Code Playgroud) 我有一个使用List.par的小程序
val x = List(1,2,3,4,5).par.map(y => {
Thread.sleep(2000)
println(y)
y + 1
})
println(x)
Run Code Online (Sandbox Code Playgroud)
输出:
3
1
4
5
2
ParVector(2, 3, 4, 5, 6)
Run Code Online (Sandbox Code Playgroud)
数字并行打印,但是返回值始终保持其顺序。
我的目标是并行执行对SQL数据库的一系列插入语句。
目前,我正在理解。随着语句数量的增加,我想使用ParSeq。
但是我担心它是否会导致性能下降。(如果地图实现中保留了额外的代码以保留其顺序,则这会带来性能开销)。
请建议我该怎么做。
我在情节中画情节。
(为了简单起见,我curve()在这里使用,但这也指的是plot()。)
curve(exp(x), 0, 1, col=4)
.op <- par(
fig=c(grconvertX(c(.05, .4), to='ndc'),
grconvertY(c(2, 2.75), to='ndc')),
mar=c(1, 1, 1, 1),
new=TRUE
)
curve(sin(x), 0, 2*pi)
par(.op)
Run Code Online (Sandbox Code Playgroud)
循环重复这个for基本上效果很好。然而,当我尝试使用 2x2 时layout,这些数字分布在四个不同的图上,而不是显示在一个图上。
layout(matrix(1:4, 2, 2))
for (i in 1:4) {
curve(exp(x), 0, 1, col=4)
.op <- par(
fig=c(grconvertX(c(.05, .3), to='ndc'),
grconvertY(c(2, 2.75), to='ndc')),
mar=c(1, 1, 1, 1),
new=TRUE
)
curve(sin(x), 0, 2*pi)
par(.op)
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,内部par混乱了外部。我也尝试op <- par(mfrow=); ... par(op)代替layout,但结果相同。
我该如何解决这个问题?