开始创建一个包时,我构建了一些函数,然后运行 devtools::check() 以确保我走上了正轨。下面我复制了devtools::check()命令的整个输出。有两个笔记让我感到惊讶。我希望通过清理这两件事,其他事情变得更容易解决,所以我从它们开始。我不是想从检查中解决所有问题,只是想了解这两个问题。第一个是:
描述文件中未提及文件许可证
另一个紧随其后
检查 R 代码是否存在可能的问题(3.7 秒)
尽管这些函数位于描述文件中导入的包中,但仍有许多消息“没有可见的全局函数定义”。
以下是描述文件。完整的可重现代码可以在https://github.com/rexmacey/factorModel 中找到。之后是 devtools::check 命令的输出。
Package: factorModel
Title: Factor Model Creation and Evaluation
Version: 0.0.0.9000
Authors@R: person("Rex", "Macey", email = "rex@macey.us", role = c("aut", "cre"))
Description: Creates and tests factor models.
Depends: R (>= 3.5.0)
License: GPL-2
Encoding: UTF-8
LazyData: true
Imports:
dplyr,
knitr,
lubridate,
ggplot2,
reshape2,
tidyquant
Suggests:
utils,
testthat
VignetteBuilder:
utils
RoxygenNote: 6.1.1
Run Code Online (Sandbox Code Playgroud)
devtools::check 的输出
> check()
Updating factorModel documentation
Writing NAMESPACE
Loading …Run Code Online (Sandbox Code Playgroud) 在下面的示例中,我在一个可绘制的子图中有四个箱线图。此示例中的四个箱形图均具有 3 个变量:股票、债券和现金。在每个箱线图中,我希望股票以相同颜色(例如蓝色)显示,债券以相同颜色(例如红色)显示,现金以第三种颜色显示。下面的代码使我有 12 种颜色,而不是 3 种颜色。我做了一个简单的例子。在我的实际问题中,变量的数量将在运行时确定,因此我无法轻松地对颜色进行硬编码。我想调用一个调色板。
library(RColorBrewer)
library(plotly)
set.seed(101)
tbl1y <- data.frame(stocks = rnorm(1000,10,15),
bonds = rnorm(1000, 7, 8),
cash = rnorm(1000,3,1))
tbl3y <- data.frame(stocks = rnorm(1000,10,15*0.75),
bonds = rnorm(1000, 7, 8*0.75),
cash = rnorm(1000,3,1*0.75))
tbl5y <- data.frame(stocks = rnorm(1000,10,15*0.5),
bonds = rnorm(1000, 7, 8*0.5),
cash = rnorm(1000,3,1*0.5))
tbl10y <- data.frame(stocks = rnorm(1000,10,15*0.25),
bonds = rnorm(1000, 7, 8*0.25),
cash = rnorm(1000,3,1*0.25))
create_1boxplot <- function(tbl, n, vnames){
mypalette <- brewer.pal(length(vnames), "Dark2")
p <- plot_ly(data = tbl, type="box")
for(i in vnames){ …Run Code Online (Sandbox Code Playgroud) 有没有办法在PortfolioAnalytics包中创建有效的边界,而无需指定资产回报的xts对象?相反,我想提供预期收益的向量和协方差矩阵.
finance portfolio r quantitative-finance r-portfolioanalytics
我最近拂去了一个脚本,它从quadprog包调用solve.QP(我目前有1.5-5版本).现在它生成错误"对象'.QP_qpgen2'未找到".我不明白为什么.
这个对象不是由我创建的,而是由quadprog中的solve.QP函数创建的.在Github Quadprog.R上有代码(第117行):
res1 <- .Fortran(.QP_qpgen2,
as.double(Dmat), dvec=as.double(dvec),
as.integer(n), as.integer(n),
sol=as.double(sol), lagr=as.double(lagr),
crval=as.double(crval),
as.double(Amat), as.double(bvec), as.integer(n),
as.integer(q), as.integer(meq),
iact=as.integer(iact), nact=as.integer(nact),
iter=as.integer(iter), work=as.double(work),
ierr=as.integer(factorized))
Run Code Online (Sandbox Code Playgroud)
可以从solve.QP 文档中获取的代码生成错误:
##
## Assume we want to minimize: -(0 5 0) %*% b + 1/2 b^T b
## under the constraints: A^T b >= b0
## with b0 = (-8,2,0)^T
## and (-4 2 0)
## A = (-3 1 -2)
## ( 0 0 1)
## we can use solve.QP as follows:
## …Run Code Online (Sandbox Code Playgroud)