小编Spa*_*man的帖子

在R中为openMP设置"configure"

我有一个R包,使用OpenMP很容易加速.如果您的编译器支持它,那么您将获得胜利,如果没有,那么将忽略编译指示并获得一个核心.

我的问题是如何让包构建系统使用正确的编译器选项和库.目前我有:

PKG_CPPFLAGS=-fopenmp
PKG_LIBS=-fopenmp
Run Code Online (Sandbox Code Playgroud)

在我的机器上硬编码到src/Makevars中,并使用OpenMP支持构建它.但是它会在检查时产生关于非标准编译器标志的警告,并且在没有openMP功能的机器上可能会很难.

解决方案似乎是使用configure和autoconf.这里有一些信息:

http://cran.r-project.org/doc/manuals/R-exts.html#Using-Makevars

包括一个在odbc功能中编译的复杂示例.但我看不出如何开始调整以检查openmp和libgomp.

我所看到的关于使用openMP的R软件包似乎都没有设置.

那么有没有人有一个使用OpenMP设置R包的演练?

[编辑]

我现在可能已经破解了.我有一个configure.ac脚本和一个带有@ FOO @ substitutions的Makevars.in用于编译器选项.但现在我不确定工作流程.是吗:

  • 如果我更改configure.in文件,请运行"autoconf configure.in> configure; chmod 755 configure".
  • 做一个包构建.
  • 在软件包安装上,系统为我运行./configure并从Makevars.in创建Makevars

但是,仅仅是明确的,"autoconf的configure.in>配置"不上运行包安装-其纯粹的开发过程中创建的配置脚本分布- amirite?

packages r configure openmp

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

无法在R中加载wordnet包

我无法将wordnet加载到R.我使用R x64 2.14.1.我安装了包wordnet,然后我尝试加载包.

> library(wordnet)
Warning message:
In initDict() :
  cannot find WordNet 'dict' directory: please set the environment variable WNHOME to its parent
Run Code Online (Sandbox Code Playgroud)

怎么了?如何以及如何设置目录WNHOME.

r wordnet

7
推荐指数
2
解决办法
6063
查看次数

是Haskell适合统计分析

问题出在标题中.基本上我正在寻找R的替代品.我一直在使用R,有一些非常好的东西(特别是data.frame plyr和ggplot),但我真的很喜欢Haskell和类型推断,所以我是想知道使用Haskell进行"简单"统计分析是一个不错的选择.

我的基本需求是:

  • 读/写CSV
  • 导入SQL表
  • 对数据做一些基本的'mapReduce'.哪个R很棒,但我认为Haskell应该同样好.

然而,在处理真实世界数据之前,我对Haskell的体验一切正常.你总是遇到性能问题(并且很快),因为即使理论上你应该编写功能代码并且不担心计算机正在做什么,如果你不这样做并且不使用适当的库并且不是Haskell专家,东西很慢.

statistics haskell r

7
推荐指数
0
解决办法
3948
查看次数

错误代码 100 在 r 中使用 fitdist 拟合 exp 分布

我正在尝试将指数分布拟合到我的数据中,但出现以下错误

"Error in fitdist(x41, "exp", method = "mle") : 
  the function mle failed to estimate the parameters, 
                with the error code 100"
Run Code Online (Sandbox Code Playgroud)

我试过 mme 有效,但我有其他带有 mle 的分布,所以我也需要指数分布的 mle。我已经被困了好几天了。任何人都可以帮助我吗?

我的数据看起来像这样。

2795.5
304.6833
2786.45
5897.75
4381.367
1178.1
351.3167
109.85
459.6167
13.26667
0.033333
846.3833
3698.45
1527.1
94.31667
15.01667
271.8833
473
Run Code Online (Sandbox Code Playgroud)

这是我的代码

ExpMle41 <- fitdist(x41, "exp", method="mle") 
ExpMle41
plot(ExpMle41)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。谢谢你。

r

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

将NA重新插入向量中

我有一个包含NA的值向量.这些值需要由无法处理NA的外部程序处理,因此它们被剥离,写入文件,处理,然后读回,产生非NA数量长度的向量.例如,假设输入为7 3 4 NA 5 4 6 NA 1 NA,那么输出将只是7个值.我需要做的是将NA重新插入到位.

因此,给定两个向量X和Y:

 > X
 [1]  64   1   9 100  16  NA  25  NA   4  49  36  NA  81
 > Y
 [1]  8  1  3 10  4  5  2  7  6  9
Run Code Online (Sandbox Code Playgroud)

生产:

8 1 3 10 4 NA 5 NA 2 7 6 NA 9
Run Code Online (Sandbox Code Playgroud)

(你可能会注意到X是Y ^ 2,这只是一个例子).

我可以敲出一个函数来做这个,但我想知道是否有任何好的狡猾的方法做到这一点...分裂,列表,长度...嗯......

r vector

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

R map包 - 如何在国家之间划线?

在R中,使用maps包和gcIntermediate函数,如何在两个国家/地区之间绘制线条?它需要lat-long,但我不确定我应该为各国提供什么样的长期(比如我想在美国和瑞典之间画一条线)

maps r latitude-longitude

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

通过比较字符串测试R中的警告(最好的主意?)

我正在研究一个R包,我需要一些帮助来编写R测试函数,这些函数用于检查是否在C端代码上抛出正确的警告然后在R端捕获.让我给你一些关于我正在做的工作的背景:

  1. 我写的大部分内容都是在C方面完成的.另外,我在C中有一个if语句类型的宏,允许编码器以字符串的形式向R传递警告.基本前提是if(statement_true)pass_warning_to_R("要传递的警告字符串").我想要做的是测试是否在通过编写使用tryCatch块的R文件期望/需要它们时抛出这些警告.
  2. 到目前为止,我写了类似的东西:

    counter <- 0
    tryCatch({
    
    function_im_testing()
    
    }, warning = function(war) {
         # Check if warning is as expected and if so increment counter
         if(toString(war)=="The warning I'm expecting/testing for"){
            print(toString(war))
            counter <- counter + 1
         }
    
    }, error = function(err) {
          print(toString(err))
    
    }, finally = {
    print("Leaving tryCatch")
    })
    
    # Stop if the 3 warnings we expected aren't present
    stopifnot(counter == 3)
    
    Run Code Online (Sandbox Code Playgroud)

这是我正在使用的方法,到目前为止,我甚至无法通过尝试获取toString(war)和"警告我期望/测试"来获得if语句.事情.除此之外,这种方法非常草率和不可靠,这使我相信有更好的方法.那么,有没有更好的方法来做到这一点?

warnings r

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

闪亮的活性色

是否可以使用选择小部件来显示反应颜色选择的调色板?我想让用户选择由闪亮应用创建的情节的颜色.

javascript r shiny

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

将设置方法作为geom_smooth中的默认方法给出不同的结果

我正在绘制一些数据并具有以下代码:

ggplot(aes(x = x, y = y), data = data) + 
  geom_point(alpha = 1/15, color = 'blue')+
  scale_y_continuous('y')+
  scale_x_continuous('x')+
  geom_smooth(stat = 'smooth', color = 'Red')
Run Code Online (Sandbox Code Playgroud)

该图如下所示:

在此输入图像描述

但是,如果我在geom_smooth函数中指定'gam' ,例如:

geom_smooth(stat = 'smooth', color = 'Red', method = 'gam')
Run Code Online (Sandbox Code Playgroud)

我得到了不同的结果:

在此输入图像描述

为什么会这样?

r ggplot2

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

从R向量中删除单位

使用units包我可以创建一个带有物理单位的向量,例如:

library(units)
a = 1:10
units(a) <- with(ud_units, m/s) 
a
## Units: m/s
##  [1]  1  2  3  4  5  6  7  8  9 10
Run Code Online (Sandbox Code Playgroud)

但是如何在没有单位的情况下回到普通的R矢量?

unclass(a) 完成大部分工作,但在向量中留下了一堆属性:

unclass(a)
## [1]  1  2  3  4  5  6  7  8  9 10
## attr(,"units")
## $numerator
## [1] "m"
##
## $denominator
## [1] "s"
##
## attr(,"class")
## [1] "symbolic_units"
Run Code Online (Sandbox Code Playgroud)

但我觉得应该有一个更简单的方法.分配为unitless没有帮助,它创建一个具有"无单位"单位的向量.

小插图中没有任何东西......

r

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