小编Adi*_*tya的帖子

用testthat将数据放在哪里进行自动化测试?

我正在使用Hadley基于测试的方法来自动测试我的包.

在这种方法中,最适合放置测试数据文件的地方是什么?我指的是仅由测试/测试中的测试脚本使用的文件,但不是R /中的任何其他函数.

我当前的方法是将它们放在tests/testdata中,然后使用相对路径而不是system.file从那里读取.(为了避免需要安装包来运行测试).

到目前为止,是否有任何最佳实践?

automated-tests unit-testing r testthat

32
推荐指数
4
解决办法
3735
查看次数

Architect/StatET:由于R引擎失败,启动R控制台被取消

我最近在Win 7机器上升级到Architect版本0.9.7.但是,启动Architect后,RJ控制台无法启动,我收到错误消息:

‘Launching the R Console was cancelled, because It seems starting the R engine failed.”
Please make sure that R package 'rj' (2.0 or compatible) is installed and 
that the R library paths are set correctly for the R environment 
configuration 'Embedded R Server'.
Run Code Online (Sandbox Code Playgroud)

我使用www.walware.de上建议的命令在Architect内部通过RTerm运行控制台安装了软件包'rj'和'rj.gd'(确实有效):

install.packages(c("rj", "rj.gd"), repos="http://download.walware.de/rj-2.0")
Run Code Online (Sandbox Code Playgroud)

然后,我重新启动了Windows,并重新启动了Architect.相同的错误消息.我放大了错误消息的详细信息,并注意到以下行:

SEVERE: Path to rj package not found. Use R_LIBS or java property 
       'de.walware.rj.rpkg.path' to specify the location. 
Run Code Online (Sandbox Code Playgroud)

所以我打开了一个RTerm运行控制台来检查我的.libPaths()位置是否包含目录'rj'或'rj.gd'.奇怪的是,他们做到了.我的第一个.libPaths路径包含两个包.所以这似乎不是原因.怎么能修好?

r statet

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

安装包时,.onLoad在'rJava'的loadNamespace()中失败

我有一个包"javaOnLoadFailed"(只是用于测试我的问题的最小包,因此是奇怪的名称),它导入了rJava.当我尝试检查()或安装()包时,我得到'rJava'错误,即使require(rJava)本身工作正常.

install()给出以下错误:

> install()
Installing javaOnloadFailed
"C:/Program Files/R/R-3.2.0/bin/x64/R" --no-site-file --no-environ --no-save  \
--no-restore CMD INSTALL  \
"C:/Projects/stackoverflow/javaOnloadFailed/javaOnLoadFailed"  \
--library="C:/Users/adb2018/Documents/R/win-library/3.2" --with-keep.source  \
--install-tests 

* installing *source* package 'javaOnloadFailed' ...
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
*** arch - i386
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: inDL(x, as.logical(local), as.logical(now), ...)
  error: unable to load shared object 'C:/Users/adb2018/Documents/R/win-library/3.2/rJava/libs/i386/rJava.dll':
  LoadLibrary …
Run Code Online (Sandbox Code Playgroud)

r rjava

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

从分面 ggplot 中提取行数

考虑一个多面的ggplot

plotdf <- data.frame(x = 1:21, 
                     y = 3*(1:21)+4, 
                     z = c(rep(1,3), rep(2,3), rep(3,3), rep(4,3), rep(5,3), rep(6,3), rep(7,3)))

p <- ggplot2::ggplot(plotdf) + 
     ggplot2::geom_point(ggplot2::aes(x=x,y=y)) + 
     ggplot2::facet_wrap(~ z)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

如何从 p 中提取行数(或列数)?

p$facet 似乎包含相关信息:

p$facet
    <ggproto object: Class FacetWrap, Facet>
        compute_layout: function
        draw_back: function
        draw_front: function
        draw_labels: function
        draw_panels: function
        finish_data: function
        init_scales: function
        map: function
        map_data: function
        params: list
        render_back: function
        render_front: function
        render_panels: function
        setup_data: function
        setup_params: function
        shrink: TRUE
        train: function
        train_positions: function
        train_scales: function
        super:  <ggproto object: Class FacetWrap, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

标签 统计

r ×4

automated-tests ×1

ggplot2 ×1

rjava ×1

statet ×1

testthat ×1

unit-testing ×1