小编SN2*_*248的帖子

在 Rcpp 函数中停止(作为包的一部分)以调试模式结束

我正在测试stop包 using 中的使用Rcpp,我看到当stop使用时,该函数在R. 例如,我正在使用此链接中的示例函数(请参阅takeLog3函数,也粘贴在下面)

#include <Rcpp.h>

using namespace Rcpp;

// [[Rcpp::export]]
double takeLog3(double val) {
    if (val <= 0.0) {           // log() not defined here
        stop("Inadmissible value");
    }
    return log(val);
}
Run Code Online (Sandbox Code Playgroud)

的输出takeLog3(-10)

> takeLog3(-10)
Error in takeLog3(-10) : Inadmissible value
Called from: takeLog3(-10)
Browse[1]> 
Run Code Online (Sandbox Code Playgroud)

然后我必须输入Q退出调试模式。我的问题是,这是预期的行为吗?其次,如何stop声明不进入调试模式,而是在显示stop消息后完全退出该功能?

请注意,当takeLog3包含在包中时,我会看到此行为。当我在一个简单.cpp文件中的包外使用此函数时,我没有看到这种行为,其中该函数仅显示stop消息并且控制返回到控制台但不进入调试模式。

任何帮助将不胜感激!

PS:我刚刚发现我通过使用Rf_error而不是stop. 任何人都可以提供明智的意见,关于哪个更受欢迎?谢谢你。

rcpp r-package

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

为 Rcpp 函数中的参数设置“NULL”默认值

我想NULLRcpp函数中设置参数的默认值,如果参数不是,则根据参数进行一些计算NULL。这种代码的一个例子是

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
int test_null(Nullable<DataFrame> p1 = R_NilValue){

  if(p1.isNull()){
    NumericMatrix T(2,2);
    Rcout << T << std::endl;
  }
    else{
    NumericMatrix T(p1.nrow());
    Rcout << T << std::endl;
  }
  return (42);
}
Run Code Online (Sandbox Code Playgroud)

但是,我无法编译此函数并收到错误消息

error: no member named 'nrow' in 'Rcpp::Nullable<Rcpp::DataFrame_Impl<PreserveStorage> >'

这告诉我没有nrow定义 a Nullable DataFrame。有没有其他方法可以NULL为参数(即 a DataFrame)实现默认值,Rcpp以便我可以计算DataFrame它不是时的其他属性(编号或行、列等)NULL

任何帮助将不胜感激!

谢谢!

SN248

rcpp

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

使用链接命令在循环中打印 ggplot

我正在尝试在循环中制作一组 ggplots 并显示它们。我正在尝试使用%>%运算符。这是一个玩具示例,它绘制了从 1 到 10 的点,每个点都有不同的标题。

library(magrittr)
library(ggplot2)

data1 <- data.frame('x' = 1:10, 'y' = 1:10)

for (index in 1:10){

  data1 %>% 
    ggplot(aes(x = x, y = y)) +
    geom_point() +
    ggtitle(paste("plot ",as.character(index)))
}
Run Code Online (Sandbox Code Playgroud)

现在,下面的代码可以工作并生成 10 个图,每个图都有不同的标题

library(magrittr)
library(ggplot2)

data1 <- data.frame('x' = 1:10, 'y' = 1:10)

for (index in 1:10){


    print(ggplot(data = data1, aes(x = x, y = y)) +
    geom_point() +
    ggtitle(paste("plot ",as.character(index))))
}
Run Code Online (Sandbox Code Playgroud)

但是,我想使用%>%运算符来生成一系列图。我%>% print()在标题末尾尝试过,它运行但不生成用于显示的图。然而

for (index in 1:10){

  data1 …
Run Code Online (Sandbox Code Playgroud)

r piping ggplot2

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

在Netlify上部署失败状态但站点仍然部署

我正在使用blogdown我的第一个网站,并尝试按照[here]的在线文档中的部署说明进行操作blogdown

这是我从文档中理解的,在RStudio中构建站点并public在git存储库中复制文件夹的内容.存储库sn248.github.io用于包含jekyll基于我的静态网页的内容,并使用Gi​​thub页面进行托管.它只有几个帖子,我打算手动转换为blogdown基于webite的帖子.

我确实看到了我想要的主题的新网站,但我担心我在Netlify上看到的部署失败消息(下面)

12:09:21 AM: Installing Hugo 0.30
12:09:24 AM: Error: Unable to locate Config file. Perhaps you need to create a new site.
       Run `hugo help new` for details. (Config File "config" Not Found in "[/opt/build/repo]")
12:09:25 AM: Build complete: exit code: 255
12:09:25 AM: Cleaning up docker container
12:09:25 AM: Error running command: Build script returned non-zero exit code: 255
12:09:26 AM: An error occurred …
Run Code Online (Sandbox Code Playgroud)

r netlify blogdown

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

`dplyr`在`r`中没有使用`MASS`包

我在使用包遇到一个奇怪的问题MASS,并dplyr在了一起R使用RStudio.以下代码

library(dplyr)
select(iris, starts_with("Petal"))
Run Code Online (Sandbox Code Playgroud)

工作,并给我正确的输出.但是,如果我尝试加载MASS包并使用相同的代码

library(MASS)
library(dplyr)
select(iris, starts_with("Petal"))
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

select(iris, starts_with("Petal"))
Error in select(iris, starts_with("Petal")) : 
  unused argument (starts_with("Petal"))
Run Code Online (Sandbox Code Playgroud)

有没有用一个已知的问题dplyrMASSRStudio.我加载dplyrMASS,以免掩盖selectdplyr.我已经卸载并重新安装了我的RStudio,但错误仍然存​​在.

我正在使用R版本3.2.2,MASS版本7.3-45dplyr版本0.5.0

任何帮助将非常感谢!

sn248

r dplyr

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

标签 统计

r ×3

rcpp ×2

blogdown ×1

dplyr ×1

ggplot2 ×1

netlify ×1

piping ×1

r-package ×1