我希望知道为什么message()
比print()
打印诊断信息更好.
例如,print()
函数是打印R对象的更好选择,例如'iris'
,message()
当我们想要连接字符串时,它更好,例如message("a", "b")
短于print(paste0("a", "b"))
.
但是,我认为与上面列出的简单差异相比,存在更多差异.我已经阅读了这两种方法的文档
但是,似乎它们并没有像我希望的那样提供信息.
如果有人告诉我们哪种情况message()
比哪种情况更好print()
,为什么我会感激.
我想了解在设置宏/变量的作用和关系,~/.R/Makevars
以及package_directory/src/Makevars
安装时/构建自己的R包.假设这些文件看起来像
〜/ .R/Makevars
CXX = g++
CXXSTD = -std=c++11
CXXFLAGS = -fsanitize=undefined,address -fno-omit-frame-pointer
CXX98 = g++
CXX98STD = -std=c++98
CXX11 = g++
CXX11STD = -std=c++11
CXX14 = g++
CXX14STD = -std=c++14
Run Code Online (Sandbox Code Playgroud)
package_directory/SRC/Makevars
PKG_CPPFLAGS = -I../inst/include
CXX_STD = CXX11
Run Code Online (Sandbox Code Playgroud)
据我所知,CXX
我们可以在构建R包时为C++选择编译器,CXXSTD
我们选择标准并CXXFLAGS
添加编译器标志.随着PKG_CPPFLAGS
我们为C++预处理器添加标志,CXX_STD
我们告诉我们的包使用C++ 11.
我有以下问题:
CXX
和CXX98
,CXX11
和CXX14
?CXX11STD = -std=c++11
如果已经隐含了C++ 11,那意味着什么?是在选择-std=c++11
和-std=gnu++11
?应该-std=gnu++11
通常避免针对便携性的原因?CXXSTD
,CXXFLAGS …
更新:
我写了一篇关于在Windows上安装Rtools的简短演练指南.
原版的:
我试图在Windows 7上使用RStudio构建一个R包.当我尝试通过RStudio的Build面板构建包时,我收到:
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:
http://cran.rstudio.com/bin/windows/Rtools/
Run Code Online (Sandbox Code Playgroud)
加载library(devtools)
和运行find_rtools(T)
给出:
Scanning path...
ls : F:\Rtools\bin\ls.exe
Scanning registry...
Found F:/Rtools for 3.1
VERSION.txt
Rtools version 3.1.0.1936
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
Path变量设置为:
F:\Rtools\bin;F:\Rtools\gcc-4.6.3\bin;F:\Rtools\perl\bin;F:\Rtools\MinGW\bin;F:\Program Files\R\R-3.0.2\bin\x64;F:\Program Files (x86)\HTML Help Workshop;F:\Program Files\MiKTeX 2.9\miktex\bin\x64\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Program …
Run Code Online (Sandbox Code Playgroud) 我在使用依赖服务时收到此错误Xamarin.Forms PCL
.我已经看到了答案,这个错误涉及iOS
和Linker
.但是,我正在运行此功能Android
并且Linker
已关闭.调试模式也是如此.
它告诉我的构造函数无法在PCL中找到接口的默认构造函数.
我认为这可能是我做过的一些重命名问题(我使用了重构工具并确保所有必要的更改都已完成)所以我删除了那些文件夹/文件并重新制作它们.依然没有 :(
我一直在搜索和调试这几个小时.有什么东西可能导致这个错误?我很确定我的DependencyService
实现是正确的,所以我觉得它是不同的东西.
这是我的相关代码.
namespace Enchantum.Functions
{
public interface PaymentProcessor
{
void setUpCard(String cardNumber,
int expirationMonth,
int expirationYear,
String CVC);
Task cardTokenizer();
void backendCardCharge();
}
Run Code Online (Sandbox Code Playgroud)
[assembly: Xamarin.Forms.Dependency(typeof(PaymentProcessor_Android))]
namespace Enchantum.Droid.Functions_Android
{
class PaymentProcessor_Android : PaymentProcessor
{
public PaymentProcessor_Android() { }
private Card mCard;
private Token mToken;
public void setUpCard(String cardNumber, int expirationMonth,
int expirationYear, String cvcCode)
{
Card card = new Card
{
Number …
Run Code Online (Sandbox Code Playgroud) c# dependency-injection xamarin.android stripe.net xamarin.forms
我试图理解为什么输出facet_grid()
和输出facet_wrap()
是不同的,即使输入是相同的:
ggplot(temp, aes(x = valor)) +
geom_histogram(binwidth = 5, fill = NA, color = "black") +
facet_grid(estratificacao ~ referencia, scales = "free") +
scale_x_continuous(breaks = seq(0, 100, 10)) + theme_classic()
Run Code Online (Sandbox Code Playgroud)
ggplot(temp, aes(x = valor)) +
geom_histogram(binwidth = 5, fill = NA, color = "black") +
facet_wrap(estratificacao ~ referencia, scales = "free") +
scale_x_continuous(breaks = seq(0, 100, 10)) + theme_classic()
Run Code Online (Sandbox Code Playgroud)
请参阅,该参数scales = "free"
对于facet_grid()
和没有相同的行为facet_wrap()
.有什么可以解释的?
如果包的当前版本出现一些错误,则用户可能更愿意安装特定版本(例如版本1.0.1).可以用什么样的R代码来实现呢?
举例来说,发布最新的OhdsiRTools
R包:
https://github.com/OHDSI/OhdsiRTools/tree/v1.0.1
命令如下:
install_github("OHDSI/OhdsiRTools", ref = 'v1.0.1')
Run Code Online (Sandbox Code Playgroud)
上面的代码不正确.它仅适用于分支(例如,master
或devA
).但该devtools
软件包具有引用版本的功能.
理想情况下,我会通过标签引用发布(但提交ID的解决方案也可以).
EXTRA BONUS:什么代码可以安装"最新"版本.(但认为这是一个奖金问题.关于主要问题的问题)
我编写了一个函数Rcpp
并用它编译inline
.现在,我想在不同的内核上并行运行它,但是我遇到了一个奇怪的错误.这里有一个小例子,其中功能funCPP1
可以编译和运行本身很好,但不能被调用snow
的clusterCall
函数.该函数作为单个进程运行良好,但在并行运行时会出现以下错误:
Error in checkForRemoteErrors(lapply(cl, recvResult)) :
2 nodes produced errors; first error: NULL value passed as symbol address
Run Code Online (Sandbox Code Playgroud)
以下是一些代码:
## Load and compile
library(inline)
library(Rcpp)
library(snow)
src1 <- '
Rcpp::NumericMatrix xbem(xbe);
int nrows = xbem.nrow();
Rcpp::NumericVector gv(g);
for (int i = 1; i < nrows; i++) {
xbem(i,_) = xbem(i-1,_) * gv[0] + xbem(i,_);
}
return xbem;
'
funCPP1 <- cxxfunction(signature(xbe = "numeric", g="numeric"),body = src1, plugin="Rcpp")
## Single process …
Run Code Online (Sandbox Code Playgroud) 我正在使用dygraphs
包绘制每周数据.dygraphs
自动选择每周默认轴.但是,我希望有一种方法可以让默认轴(星期日)与我的数据(星期一)对齐.
# Required packages
library("magrittr")
library("dygraphs")
library("xts")
# Data
daily <- structure(c(4000, 5000, 3000, 7000, 2000, 5000, 7000,
2000, 3000, 6000, 5000, 9000, 2000, 2000, 2000,
7000, 9000, 2000, 1000, 13000), .Dim = c(10L, 2L), .Dimnames = list(
NULL, c("col1", "col2")), index = structure(c(1476032400,
1476637200, 1477242000, 1477846800, 1478451600, 1479056400, 1479661200,
1480266000, 1480870800, 1481475600), tzone = "Asia/Saigon", tclass = c("POSIXct",
"POSIXt")), class = c("xts", "zoo"), .indexCLASS = c("POSIXct",
"POSIXt"), tclass = c("POSIXct", "POSIXt"), .indexTZ = "Asia/Saigon", tzone …
Run Code Online (Sandbox Code Playgroud) 每当我.Rpres
在macOS上的最新RStudio(v0.99.902)下全屏播放文件时,每个幻灯片都会在介绍后显示黑色覆盖,但不会消失.
当窗口最小化时,我们有:
[
在全屏模式下(按f
),从标题幻灯片切换到后续幻灯片会产生:
使用的代码:
Lecture 4: The Art of Life
====
author: 385
date: Today
autosize: true
On the Agenda
====
- Learn about functions
- Learn about other things..
> Only this text appears
Run Code Online (Sandbox Code Playgroud)