Dirk Edelbuettel的博客文章指出:
Rcpp作为一个CRAN软件包遵循CRAN策略而不是(至少)支持这个标准的[C++ 11],因为它声称是非便携状态.
博客条目已有两年了,我一直在想这是否仍然是真的(关于CRAN政策,我没有找到任何关于C++ 11的提示,以及Rcpp支持).
而且,我想知道这究竟意味着什么.我CXX_STD = CXX11在src/MAKEVARS文件中使用了一个语句(而不是Sys.setenv("PKG_CXXFLAGS"="-std=c++11")在博客条目中提出的).这似乎与我正在使用的C++ 11功能(主要是tgamma函数),Rcpp和R一起使用.但是当我将我的包提交给CRAN时,我会得到ripley吗?某些操作系统无法使用该软件包吗?
我的R包小插图使用tikz/pgf图形.R CMD检查命令在未安装LaTeX软件包tikz/pgf的操作系统上抛出错误消息.例如,在vanilla Ubuntu系统上,必须安装Ubuntu软件包'pgf'才能完成R CMD检查而不会出现错误消息.CRAN服务器似乎安装了tikz/pgf,但我无法确保这种情况始终如此.有什么办法可以将我对p包的依赖性添加到我的R包的DESCRIPTION文件中吗?我可以将它添加到'Depends'字段(即使它不是R包)吗?我不想废弃图表,因为包装插图是一篇发表在Journal of Statistical Software上的文章,我想将它用作一个没有任何修改的插图.
在R,我有一个矩阵列表,并希望将摘要函数应用于列表中的矩阵.矩阵代表社交网络,因此我需要应用ergm包提供的一些专门的汇总功能.这些摘要统计信息包含在摘要方法中.我可以编写一个函数作为这个汇总方法的包装器,并lapply用于将函数应用于矩阵列表.
但是,当我尝试通过使用parLapply或parSapply从parallel包中并行化时,结果看起来很奇怪.当我导出该summary.statistics函数时,我甚至会收到一条错误消息.
我是否必须将ergm包提供的摘要方法导出到群集对象?如果是这样,怎么样?以下代码是一个独立的示例.
library("ergm")
library("parallel")
# create list of matrices
m <- matrix(rbinom(900, 1, 0.1), nrow = 30)
l <- list(m, m, m, m, m)
# write wrapper function that computes results
fun <- function(mat) {
s <- summary(mat ~ edges + dsp(1))
return(s)
}
cl <- makePSOCKcluster(2) # create cluster object
test1 <- sapply(l, fun) # works!
test2 <- parSapply(cl, l, fun) # problem: results …Run Code Online (Sandbox Code Playgroud) 我正在解析R公式的左侧.在我的特定情况下,这可以是带索引的变量或对象(类似myvariable[[3]]).我想访问该对象的第三个子对象并将其存储在另一个对象中.以下示例从我拥有索引对象的字符串开始,但我需要引用.
mychars <- c("a", "b", "c")
mystring <- "mychars[2]"
get(mystring) # does not work
eval(as.name(mystring)) # does not work either
Run Code Online (Sandbox Code Playgroud)
我当然可以使用正则表达式解析数字并使用as.numeric它将其转换为真实索引.但在某些情况下,可能会有名称索引,如mystring["second"].那我怎样才能提取子对象呢?