小编Dir*_*tel的帖子

使用RInside/Rcpp从c ++调用R图

是否可以从c ++调用绘图函数?目前,当我尝试这样做时,ubuntu终端会冻结一段时间(可能是创建3d绘图然后旋转整整360度的持续时间)然后解冻,而不会弹出新窗口.这是预期的行为还是我做错了什么?如何使用rinside和rcpp从c ++中运行绘图(R图形)?

日Thnx

-Egon

r rcpp rinside

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

R/Rcpp使用的OpenBLAS例程仅在linux中的单个核心上运行

我正在尝试使用与Rcpp连接的C++程序在Linux机器(CentOS)上运行R分解(LAPACKE_dgeqrf).不幸的是,我看到只有100%使用top.这也发生在Red Hat Enterprise Linux服务器上.但是,从终端(独立于R外部)启动时,C++程序(带有LAPACKE_dgeqrf)以nthreads*100%运行.我用Open编译了OpenBLAS

NO_AFFINITY=1 
Run Code Online (Sandbox Code Playgroud)

并尝试过

export OPENBLAS_NUM_THREADS=4
export GOTO_NUM_THREADS=4
export OMP_NUM_THREADS=4
export OPENBLAS_MAIN_FREE=1
Run Code Online (Sandbox Code Playgroud)

什么都行不通.虽然在Mac上一切正常.并行R包中的'mcaffinity()'返回NULL.我用R配置了R.

configure  'CFLAGS=-g -O3 -Wall -pedantic' 'CXXFLAGS=-g -O3 -Wall -pedantic' 'FCFLAGS=-g -O3' 'F77FLAGS=-g -O3' '--with-system-zlib' '--enable-memory-profiling'
Run Code Online (Sandbox Code Playgroud)

我的C++代码:

#include <Rcpp.h>
#include <lapacke.h>
#include <cblas.h>

//[[Rcpp::export]]
Rcpp::NumericMatrix QRopenblas(Rcpp::NumericMatrix X)
{
    // Declare variables 
    int n_rows = X.nrow(), n_cols = X.ncol(), min_mn = std::min(n_rows, n_cols);
    Rcpp::NumericVector tau(min_mn);

    // Perform QR decomposition
    LAPACKE_dgeqrf(CblasColMajor, n_rows, n_cols, X.begin(), n_rows, tau.begin());

    return X;
}
Run Code Online (Sandbox Code Playgroud)

我的R代码:

PKG_LIBS <- '/pathto/openblas/lib/libopenblas.a' 
PKG_CPPFLAGS <- '-I/pathto/openblas/include'
Sys.setenv(PKG_LIBS = …
Run Code Online (Sandbox Code Playgroud)

r blas

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

如何使用新的doxygen输出最小化修订之间的更改次数?

subversion存储库包含从源代码生成doxygen的html,latex和man目录.即使对于小的源代码更改,也会使用随机名称生成新文件,这会在版本控制系统中进行大的更改.

这有什么办法吗?如何在包含doxygen生成的文档的同时最小化修订之间的更改集?或者,我怎么能找到不再使用的doxygen-genrated文件,应该删除?

svn version-control doxygen

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

使用RODBC从Revolution R查询Oracle DB

使用64位ODBC驱动程序通过DSN连接到Oracle的winxp64位上的Revolution R 64bit中的RODBC错误

library(RODBC)
db <- odbcConnect("oraclemiso",uid="epicedf",pwd="…")
rslts = sqlQuery(db, "select count(*) from FTRAuction")

Error in .Call(C_RODBCFetchRows, attr(channel, "handle_ptr"), max, buffsize,  : 
  negative length vectors are not allowed
Run Code Online (Sandbox Code Playgroud)

我能够连接但在查询内容时出错,以下工作

 library(RODBC)
 channel <- odbcConnect("OraLSH", <user>, <password>))
 odbcQuery (channel, "select sysdate from dual")
 sqlGetResults(channel, as.is=FALSE, errors=FALSE, max=1, buffsize=1,
nullstring=NA, na.strings="NA", believeNRows=TRUE, dec=getOption("dec"))
              SYSDATE
1 2010-01-24 15:10:02
Run Code Online (Sandbox Code Playgroud)

但如果我之前不知道rowsize(max = 1)怎么办?

谢谢,阿伦

r rodbc

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

在shell中做基本统计的最佳方法是什么?

现代Unix shell环境有很多好东西,我需要的东西几乎总是安装在我的机器上或者快速下载; 麻烦就是找到它.在这种情况下,我试图找到基本的统计操作.

例如,现在我正在为基于爬虫的应用程序进行原型设计.感谢wget加上其他一些好东西,我现在有几十万个文件.所以我可以用数十亿个文件估算这样做的成本,我想得到文件大小超过一定限度的平均值和中位数.例如:

% ls -l | perl -ne '@a=split(/\s+/); next if $a[4] <100; print $a[4], "\n"' > sizes
% median sizes
% mean sizes
Run Code Online (Sandbox Code Playgroud)

当然,我可以用perl或awk编写自己的中位数和平均值.但是,不是已经有一些noob友好的包,除此之外还有更多吗?

unix shell statistics r

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

R函数用于解析命令行参数

我在下面有以下函数,我用它来解析命令行参数,以便我可以从命令行运行R脚本:

 parseArguments <- function() {
     text1 <- commandArgs(TRUE)
     eval(parse(text=gsub("\\s", ";", gsub("--","", text1))))
     args <- list()
     for( ar in ls()[! ls() %in% c("text1", "args")] ) {args[ar] <- get(ar)}
     return (args)
 }
Run Code Online (Sandbox Code Playgroud)

当我尝试R使用以下命令行参数调用使用上述函数解析CL参数的脚本时,这是一个CLI会话输出:

./myscript.R --param1='XLIF' --param2='ESX' --param3=5650.0 --param4=5499.2 --param5=0.0027397260274 --param6='Jul' --riskfreerate=0.817284313119 --datafile='/path/to/some/datafile.csv' --imagedir='/path/to/images' --param7=2012 --param8=2
Error in parse(text = gsub("\\s", ";", gsub("--", "", text1))) : 
  8:10: unexpected '/'
7: riskfreerate=0.817284313119
8: datafile=/
            ^
Calls: parseArguments -> eval -> parse
Execution halted
Run Code Online (Sandbox Code Playgroud)

救命?

[[更新]]

我遵循了Dirk的建议并安装了optparse库.我的代码现在看起来像这样:

library(optparse)

# …
Run Code Online (Sandbox Code Playgroud)

r

6
推荐指数
2
解决办法
2859
查看次数

如何获得stan中参数的完全边际分布

stan 网页开始标准示例时,如下所示:

schools_code <- '
  data {
   int<lower=0> J; // number of schools 
   real y[J]; // estimated treatment effects
   real<lower=0> sigma[J]; // s.e. of effect estimates 
 } 
 parameters {
   real theta[J]; 
   real mu; 
   real<lower=0> tau; 
 } 
 model {
   theta ~ normal(mu, tau); 
   y ~ normal(theta, sigma);
 } 
 '

  schools_dat <- list(J = 8, 
                 y = c(28,  8, -3,  7, -1,  1, 18, 12),
                 sigma = c(15, 10, 16, 11,  9, 11, 10, 18))

 fit <- stan(model_code = schools_code, …
Run Code Online (Sandbox Code Playgroud)

r winbugs14 stan

6
推荐指数
2
解决办法
1548
查看次数

R .C接口:传递多维数组

我已经写了C中的函数"富",我想从R程序中调用.该函数接受矩阵作为输入并对其执行一些操作(例如,为每个元素添加1).虽然单个矢量很容易

.C("foo", n=as.integer(5), x=as.double(rnorm(5)))
Run Code Online (Sandbox Code Playgroud)

用foo实现的

void foo(int *nin, double *x)
{
int n = nin[0];

int i;

for (i=0; i<n; i++)
    x[i] = x[i] * x[i];
} 
Run Code Online (Sandbox Code Playgroud)

如何传入二维数组?如果我改变了"双*X"到"双**X"它给出了一个分段错误.任何指针赞赏.

arrays r interface multidimensional-array

6
推荐指数
2
解决办法
2139
查看次数

加载Rcpp并运行示例代码

我对R很新,我遇到了Rcpp的问题.从这个URL http://www.r-bloggers.com/installing-rcpp-on-windows-7-for-r-and-c-integration/我已经按照安装Rcpp的所有步骤进行了操作.我还安装并加载了RcppClassic和Rinside.当我尝试运行建议的代码时:

# install packages
install.packages(c("Rcpp", "rbenchmark", "inline", "Runit"))

# load main two packages
library(Rcpp)
library(inline)

# do something with Rcpp to quickly check that it works
body <- '
NumericVector xx(x);
return wrap( std::accumulate( xx.begin(), xx.end(), 0.0));'

add <- cxxfunction(signature(x = "numeric"), body, plugin = "Rcpp")

x <- 1
y <- 2
res <- add(c(x, y))
res
#[1] 3
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

package ‘Rcpp’ successfully unpacked and MD5 sums checked 
Warning: cannot remove prior installation of package ‘Rcpp’ package
‘rbenchmark’ …
Run Code Online (Sandbox Code Playgroud)

c++ r rcpp

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

如何让R包推荐一个托管在GitHub上的包?

我正在开发的R包,它作为从被称为平行的rHPC包装功能的包装ctools.我知道如果我希望我的包需要这些包,我需要将它们包含在文件的Imports部分中DESCRIPTION.安装我的软件包时,将从CRAN安装这些软件包.同样,Suggests如果不需要,我可以将它们放在该部分中,但是很有用.这些不会随我的包安装.

但是,我已经分叉了Rhpc包并添加了一个我在ctools包中使用的函数.如何从我的GitHub仓库获取我的软件包以建议/导入此软件包,而不是安装Rhpc软件包,它会执行devtools::install_github("bamonroe/Rhpc")吗?

r devtools r-package

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