e*********6 发帖数: 3453 | 1 最近帮朋友看一些Rcpp上的问题,实在没搞明白Rcpp有啥好处,坏处一大堆
1)多了个Rcpp,要调整一个compiler flag,比如从O2改成O3都很麻烦;
2)貌似也没有找到能用gdb去debug的方法
3)各种library的设置都很麻烦
要说好处,只能说RCpp读取数据方便点,但是这也不如先用Python之类的把数据整理一
下,用C++直接把文件读出来就是 | d******e 发帖数: 7844 | 2 我除了写package之外,几乎从不从R里call C或C++。
没什么便利,都是麻烦。
【在 e*********6 的大作中提到】 : 最近帮朋友看一些Rcpp上的问题,实在没搞明白Rcpp有啥好处,坏处一大堆 : 1)多了个Rcpp,要调整一个compiler flag,比如从O2改成O3都很麻烦; : 2)貌似也没有找到能用gdb去debug的方法 : 3)各种library的设置都很麻烦 : 要说好处,只能说RCpp读取数据方便点,但是这也不如先用Python之类的把数据整理一 : 下,用C++直接把文件读出来就是
| l******n 发帖数: 9344 | 3 很多常用的package都用很多现成c/cp的东西,这个还是很必要的。
【在 d******e 的大作中提到】 : 我除了写package之外,几乎从不从R里call C或C++。 : 没什么便利,都是麻烦。
| w**********y 发帖数: 1691 | 4 debug的确很麻烦,但是如果你cpp的部分都需要非常复杂的debug的情况下,可能R已经
不是一个很好的选择了。
Rcpp对于一些逻辑很简单但是又避免不了forloop的simple task很有用。
举个例子,假如你有100只股票,每只股票过去10年的每分钟数据,那么你大概有一个
100x一百万的矩阵,现在要求你算每个股票的hourly rolling mean/variance/
correlation/alpha/beta. 每个的计算都不会超过20行的代码。Rcpp 对这样的任务简
直是神器。
runMean, runSD这些都在TTR的package里面有。但是runBeta, runAlpha, runSkew,
runCor这种我都是自己定义,基本上每天都在用。
btw,请教一下,你说的compiler flag, o2, o3是什么?
【在 e*********6 的大作中提到】 : 最近帮朋友看一些Rcpp上的问题,实在没搞明白Rcpp有啥好处,坏处一大堆 : 1)多了个Rcpp,要调整一个compiler flag,比如从O2改成O3都很麻烦; : 2)貌似也没有找到能用gdb去debug的方法 : 3)各种library的设置都很麻烦 : 要说好处,只能说RCpp读取数据方便点,但是这也不如先用Python之类的把数据整理一 : 下,用C++直接把文件读出来就是
| e*********6 发帖数: 3453 | 5 compiler flag可以参见这个http://www.zhihu.com/question/27090458,还有很多选项,有时候新加的library在g++命令上加上比较方便。
个
【在 w**********y 的大作中提到】 : debug的确很麻烦,但是如果你cpp的部分都需要非常复杂的debug的情况下,可能R已经 : 不是一个很好的选择了。 : Rcpp对于一些逻辑很简单但是又避免不了forloop的simple task很有用。 : 举个例子,假如你有100只股票,每只股票过去10年的每分钟数据,那么你大概有一个 : 100x一百万的矩阵,现在要求你算每个股票的hourly rolling mean/variance/ : correlation/alpha/beta. 每个的计算都不会超过20行的代码。Rcpp 对这样的任务简 : 直是神器。 : runMean, runSD这些都在TTR的package里面有。但是runBeta, runAlpha, runSkew, : runCor这种我都是自己定义,基本上每天都在用。 : btw,请教一下,你说的compiler flag, o2, o3是什么?
|
|