小编use*_*795的帖子

使用subprocess.Popen从python调用pandoc

我在使用python调用pandoc时遇到问题subprocess.Popen.这一切都在控制台中工作.这是代码.

# Test markdown file
here is just a simple markdown file.
Run Code Online (Sandbox Code Playgroud)

现在我使用的python代码filename是我的markdown文件的完整路径:

import subprocess
fileout = os.path.splitext(filename)[0] + ".pdf"
args = ['pandoc', filename, '-o', fileout]
subprocess.Popen(args)
Run Code Online (Sandbox Code Playgroud)

我也尝试了各种方法来捕获错误,但这不起作用.但是,在控制台中,一切正常:

pandoc '[filename]' -o '[fileout]'
Run Code Online (Sandbox Code Playgroud)

python subprocess pandoc

3
推荐指数
2
解决办法
1797
查看次数

具有rcpp和RcppArmadillo的多元正态/高斯的一阶导数

我正在尝试在R建筑中rcpp实现多元正态分布的一阶导数,以实现此处此处发布的多元正态分布.

这是一个快速R实现

mvnormDeriv = function(..., mu=rep(0,length(list(...))), sigma=diag(length(list(...)))) {
    if(sd(laply(list(...),length))!=0)
        stop("The vectors not same length.")
    fn = function(x) -1 * c((1/sqrt(det(2*pi*sigma))) * exp(-0.5*t(x-mu)%*%solve(sigma)%*%(x-mu))) * solve(sigma,(x-mu))
    out = t(apply(cbind(...),1,fn))
    colnames(out) = c('x', 'y')
    return(out[,1])
}
Run Code Online (Sandbox Code Playgroud)

以及一些基准测试数据:

set.seed(123456789)
sigma = rWishart(1, 2, diag(2))
means = rnorm(2)
X     = rmvnorm(10000, means, sigma[,,1])
x1    = X[,1]
x2    = X[,2]
benchmark(mvnormDeriv(x1,x2,mu=means,sigma=sigma),
    order="relative", replications=5)[,1:4]
Run Code Online (Sandbox Code Playgroud)

该公式可以在矩阵食谱(2012),公式346中找到.

我没rcpp能从这里修改多变量法线的实现.这是一些代码,我曾经尝试过

// [[Rcpp::export]]
arma::vec dmvnormDeriv_arma(arma::mat x,  SEXP mu_sexp, arma::mat sigma, bool log …
Run Code Online (Sandbox Code Playgroud)

r rcpp

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

ggplot2 geom_point,带有分箱x轴,用于二进制数据

我正在尝试为二进制数据创建带有分箱x轴的散点图.当我使用geom_point二进制y时,情节很无用(见图1).如图2所示,我想根据x轴的值对数据进行分类,然后使用geom_point(将每个bin中的obs数量映射到该点的大小)绘制每个bin中的avg x和avg y ).我可以通过聚合数据来做到这一点,但我想知道ggplot是否可以直接进行.我玩过stat_bindot等等,但无法找到解决方案.有任何想法吗?下面是一些代码.

谢谢!

# simulate data
n=1000
y=rbinom(n,1,0.5)
x=runif(n)
data=data.frame(x,y)

# figure 1 - geom_point with binary data, pretty useless!
ggplot(data,aes(x=x,y=y)) + geom_point() + ylim(0,1)

# let's create an aggregated dataset with bins
bin=cut(data$x,seq(0,1,0.05))
# I am sure the aggregation can be done in a better way...
data.bin=aggregate(data,list(bin),function(x) { return(c(mean(x),length(x)))})

# figure 2 - geom_point with binned x-axis, much nicer!
ggplot(data.bin,aes(x=x[,1],y=y[,1],size=x[,2])) + geom_point() + ylim(0,1)
Run Code Online (Sandbox Code Playgroud)

图1和2:

r ggplot2

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

使用stata打开使用R的`saveRDS`(序列化界面)保存的文件

通常我更喜欢保存我的R对象,saveRDS以便稍后我可以使用它将它们重新分配给特定的变量df= readRDS(...).有时我想在stata做点什么.那么有没有办法打开saveRDSstata中保存的文件?

r stata

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

标签 统计

r ×3

ggplot2 ×1

pandoc ×1

python ×1

rcpp ×1

stata ×1

subprocess ×1