小编gvr*_*cha的帖子

如何将itertools.product应用于列表列表的元素?

我有一个数组列表,我想获得数组中元素的笛卡尔积.

我将用一个例子来说明这个更具体......

itertools.product似乎可以做到这一点,但我陷入了一些细节.

arrays = [(-1,+1), (-2,+2), (-3,+3)];
Run Code Online (Sandbox Code Playgroud)

如果我做

cp = list(itertools.product(arrays));
Run Code Online (Sandbox Code Playgroud)

我明白了

cp = cp0 = [((-1, 1),), ((-2, 2),), ((-3, 3),)]
Run Code Online (Sandbox Code Playgroud)

但我想得到的是

cp1 = [(-1,-2,-3), (-1,-2,+3), (-1,+2,-3), (-1,+2,+3), ..., (+1,+2,-3), (+1,+2,+3)].
Run Code Online (Sandbox Code Playgroud)

我尝试了一些不同的东西:

cp = list(itertools.product(itertools.islice(arrays, len(arrays))));
cp = list(itertools.product(iter(arrays, len(arrays))));
Run Code Online (Sandbox Code Playgroud)

他们都让我CP0代替CP1.

有任何想法吗?

提前致谢.

python cartesian-product python-itertools

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

包含带R程序包的命令行脚本

我有兴趣为我正在创作的名为Slidify的R包提供命令行界面.它使用Rscript,我认为这将使它跨平台.脚本存储在子目录中inst/slidify.为了使用任何目录中的脚本,我将其路径添加到了我,.bash_profile因为我在Mac上.

我的问题是

  1. 我应该如何以自动跨平台方式处理脚本的安装?
  2. 如何确保在此过程中保留文件权限?
  3. 脚本的shebang线应该是什么?我目前正在使用

    #!/usr/bin/Rscript --vanilla --slave

我希望指出如何处理这个以及已经完成它的R包的任何示例.为了确保,我清楚这将如何工作,用户将能够slides.Rmd通过slidify generate slides.Rmd从命令行运行生成幻灯片.

更新:

以下是我从命令行在Mac上安装它的方法.我使用37个信号的优秀库来创建脚本.

echo "$(path/to/clidir/slidify init -)" >> ~/.bash_profile exec bash

两个跟进问题

  1. 我可以将这些命令打包成R函数install_slidify_cli吗?
  2. 如何为Windows用户镜像这些命令?

r package rscript r-package

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

在BUGS/JAGS/STAN语言中定义新函数和发行版

我是一个非常新的统计分析世界,并且最近对BUGS/JAGS/STAN建模语言感兴趣.令我感到惊讶的是,我没有看到任何新函数或发行版的示例被定义以避免代码重复.例如,假设我经常使用泊松分布的平方,无论如何都要做以下事情?

dsqpo <- function(lambda) {
  tmp ~ dpois(lambda)
  tmp2 <- tmp * tmp
  return(tmp2)
}
Run Code Online (Sandbox Code Playgroud)

然后是

model{
  ...
  x ~ dsqpo(alpha)
  y ~ dsqpo(beta)
}
Run Code Online (Sandbox Code Playgroud)

无需每次都定义新的临时变量.

jags winbugs r2winbugs stan

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