我正在测试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. 任何人都可以提供明智的意见,关于哪个更受欢迎?谢谢你。
我想NULL在Rcpp函数中设置参数的默认值,如果参数不是,则根据参数进行一些计算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
我正在尝试在循环中制作一组 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) 我正在使用blogdown我的第一个网站,并尝试按照[here]的在线文档中的部署说明进行操作blogdown
这是我从文档中理解的,在RStudio中构建站点并public在git存储库中复制文件夹的内容.存储库sn248.github.io用于包含jekyll基于我的静态网页的内容,并使用Github页面进行托管.它只有几个帖子,我打算手动转换为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) 我在使用包遇到一个奇怪的问题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)
有没有用一个已知的问题dplyr与MASS在RStudio.我加载dplyr后MASS,以免掩盖select的dplyr.我已经卸载并重新安装了我的RStudio,但错误仍然存在.
我正在使用R版本3.2.2,MASS版本7.3-45和dplyr版本0.5.0
任何帮助将非常感谢!
sn248