小编tla*_*don的帖子

R:使用内联包时的C++优化标志

在R中使用内联包中的cxx函数时,如何更改cpp编译器的优化标志?

默认情况下,在我的机器上,它编译-g -O2.但我想用-O3优化来提高速度.我使用Rcpp插件,如果这有任何区别.

我试过创建自己的插件,我试图设置cxx函数的不同参数,但没有任何效果.

我想一个选项是使用R CMD SHLIB而不是使用编译它cxxfunction.但是Rcpp建议使用它,inline因为他们的大多数测试用例都在使用它.

感谢您的帮助,如果您需要任何澄清,请与我们联系

c++ r inline rcpp

18
推荐指数
1
解决办法
2215
查看次数

在R中创建表达式树

替代函数以R树的形式创建一个可以解析的语言对象.如何使用列表从头开始创建树,否则将其提供给eval?

# substitute gives a tree representation of the expression
a=1; b=2;
e1 = substitute(a+2*b)
eval(e1)      #gives 5 as expected
e1            # is type language
e1[[1]]       # this is `+`
e1[[2]]       # this is 'a' type symbol
e1[[3]]       # this is type language
e1[[3]][[1]]  # this is `*`  etc....
Run Code Online (Sandbox Code Playgroud)

我想知道如何以e1编程方式重建对象.理想情况下,我创建了一个复杂列表的对象,其中包含正确的对象,也许我会as.languagelist对象上调用一些对象.然而,这不起作用.例如:

# how to construct the tree?
eval(list(as.symbol('+'),1,1))                # does not return 2
eval(as.expression(list(as.symbol('+'),1,1))) # does not return 2
Run Code Online (Sandbox Code Playgroud)

一种方法是生成字符串'1 + 1'然后解析它,但是当你首先拥有树时,生成字符串以再次解析它们似乎并不优雅!

eval(parse(text='1+1')) …
Run Code Online (Sandbox Code Playgroud)

tree eval r substitution

12
推荐指数
2
解决办法
1812
查看次数

使用roxygen2的R包中的源子目录

我想在R文件夹中使用目录结构来获取包的源代码.例如,在我的R文件夹中,我有一个algos文件夹,其中包含我要导出和记录的功能.但是roxygen2,默认情况下似乎没有通过该文件R夹的子文件夹.

我试图@include在`R/algos/algo1.r'的文件中使用如下关键字

#' @include algos/algo1.r
Run Code Online (Sandbox Code Playgroud)

但没有成功.是否有一种简单的方法可以将子文件夹用于R源代码?

documentation r package roxygen

12
推荐指数
1
解决办法
2446
查看次数

指定 das 的仪表板端口

使用dask-jobqueue创建 dask 集群时是否可以手动指定仪表板的端口?当使用8787时,它会随机选择一个不同的端口,这意味着每次都需要设置不同的隧道。

from dask_jobqueue import PBSCluster
cluster = PBSCluster() # ideally here dashboard_port=
cluster.scale(10)         

from dask.distributed import Client
client = Client(cluster)  # Connect this local process to remote workers
Run Code Online (Sandbox Code Playgroud)

python dask dask-distributed

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

使用宏提取Julia中的几个对象字段

我有一个结构,我想从中重复访问这些字段,以将它们加载到当前空间中,如下所示(其中M是带有X和Y字段的类型):

X = M.X
Y = M.Y
Run Code Online (Sandbox Code Playgroud)

在R中,我经常使用with命令来做到这一点。现在,我只想拥有一个用于扩展该代码的宏,类似于

@attach(M,[:X,:Y])
Run Code Online (Sandbox Code Playgroud)

我只是不确定如何确切地做到这一点。

macros field julia

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