标签: cran

R帮助页面作为对象

是否有一种很好的方法可以以R对象(例如列表)的形式从已安装的包中提取R-help页面.我想以标准化的JSON或XML模式的形式公开帮助页面.但是从DB获取R-help信息比我想象的要难.

我不久前一起讨厌获取R帮助手册页的HTML.但是我宁愿有一个包含这些信息的通用R对象,我可以渲染到JSON/XML/HTML等.我查看了helprHadley 的包,但这对我的目的来说似乎有些过分.

r cran

7
推荐指数
2
解决办法
482
查看次数

当转出终端时,让R使用C表示法

我不确定我在这里使用正确的术语,但是当从常规字符集中转出字节时,我需要print或者deparse使用C表示法(例如"\x05"代替"\005").

x <- "This is a \x05 symbol"
print(x)
[1] "This is a \005 symbol"
Run Code Online (Sandbox Code Playgroud)

是否有本地方法来实现这一目标?

我需要这个来生成BSON:http://bsonspec.org/#/specification.所有示例都明确使用\x05符号.

c r cran

7
推荐指数
1
解决办法
267
查看次数

使用正式方法定义为S3对象调度S3样式

问题相关,但略有不同,希望更清楚.

我正在寻找一种干净的方式来正式注册S4和S3类的方法,但不依赖于可怕的S3-dot-naming-scheme进行调度.一个例子:

setClass("foo");
setClass("bar");

setGeneric("test", function(x, ...){
    standardGeneric("test");
});

setMethod("test", "bar", function(x, ...){
    return("success (bar).");
});

obj1 <- 123;
class(obj1) <- "bar";
test(obj1);
Run Code Online (Sandbox Code Playgroud)

这个例子展示了我们如何test为类的S3对象注册一个方法bar,而不需要命名该函数test.bar,这很好.但是,限制是如果我们以这种方式注册方法,它们将仅被分派到对象的第一个S3类.例如:

obj2 <- 123;
class(obj2) <- c("foo", "bar");
test(obj2);
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为S4方法调度只会尝试类foo及其超类.如何扩展此示例,test以便bar在找不到合适的方法时自动选择方法foo?例如S3风格调度,但无需返回命名一切test.footest.bar

总结一下:如何创建一个使用形式方法调度的泛型函数,但另外还要回到具有多个类的S3对象的对象的第二,第三等类.

r cran s4

7
推荐指数
1
解决办法
289
查看次数

可以说明包依赖的显式版本吗?

对于我编写的代码,我倾向于明确而非隐含.因此,在设法创建自己的软件包之后,我立即想到的另一件事是如何最好地确保代码的健壮性和可靠性.部分原因与我的包依赖的包有关.

实际问题

在这方面:是否可以明确说明需要/期望哪个版本的包依赖?

我正在寻找不需要说明文件的实际路径的zip方法(当然这很容易就可以实现),但只是利用install.packages标明包名称的"标准行为" (可能还有一些)参考所需的版本).

尽职调查

我已经检查了写R扩展,看看我的选项是关于文件的Depends部分DESCRIPTION,希望有一个类似的机制,用于说明所需的R版本(例如R (>= 2.15.2)).但我没有发现任何类似的包依赖:

"Depends"字段提供了此包所依赖的包名称的逗号分隔列表.包名称后面可以选择括号中的注释.注释应包含比较运算符,空格和有效的版本号.

在例如,如果软件只为R版本2.11.0或更高版本,包括"R(> = 2.11.0)" - 你也可以使用特殊的包名"R"如果你的包依赖于一定的R版本'取决于'字段.您也可以要求对R-devel的或R-修补,例如某些SVN版本 'R(> = 2.14.0),R(> = r56550)' 需要一个版本晚于2011年7月下旬(的R-devel的包括发布版本2.14.0).这两个库,将R包检查设施使用这个字段:因此它是用语法不当或滥用"Depends中"字段,可能需要对其他软件的意见错误.其他依赖项(R系统外部)应列在"SystemRequirements"字段中,可能在单独的README文件中放大.

将R INSTALL设施检查如果R所使用的版本是软件包足够最近正在安装,并指定将附加软件包当前包之前(检查版本要求后)的名单,无论是在图书馆被称为和准备时在安装过程中进行延迟加载.

然后我也看了一眼,install.packages并希望像version争论一样,但我想没有.

放弃

我非常清楚,我的问题的目标可能对比度通过地方(至少我猜)CRAN包库某些包的新版本只是"否决"以前的和分发和安装软件包讨论R的理念install.packages()总是拿起最新的一个可用.从最终用户隐藏版本特性以避免使事情变得过于复杂也很有意义.

然而,关于尽可能编写强大代码的目标,恕我直言,非常明确地陈述事物也是有意义的.或者至少可以选择这样做.

dependencies packages r cran

7
推荐指数
1
解决办法
1575
查看次数

有效地存储大而低秩的矩阵

我知道R中有包可以有效地存储稀疏矩阵.还有一种方法可以有效地存储低秩矩阵吗?例如:

A <- matrix(rnorm(1e6), nrow=1e5, ncol=1e1)
B <- A %*% t(A)
Run Code Online (Sandbox Code Playgroud)

现在,B太大而不能存储在内存中,但它的级别很低.有没有什么办法来构建和存储B以高效的方式,这样一些基本的读取方法(rowSums,colSums等)都是在飞行中进行,以便为CPU或内存交易?

r matrix rank cran

7
推荐指数
1
解决办法
563
查看次数

在R中读取系统TMP目录

从R中查找OS临时目录的跨平台方法是什么?我目前使用:

dirname(tempdir())
Run Code Online (Sandbox Code Playgroud)

在交互式R会话中,Ubuntu和Windows上的工作都做了.然而,当从RApache内部调用时它失败了.在RApache中,值tempdir()始终是/tmp,因此dirname(tempdir())导致/,这显然是错误的.我也尝试过:

Sys.getenv("TMP")
Sys.getenv("TEMP")
Sys.getenv("TMPDIR")
Run Code Online (Sandbox Code Playgroud)

正如所建议的那样,?"environment variables"但这些都没有在Ubuntu中设置.它似乎也没有在任何文件中设置,/etc/R/*所以我不太明白R如何检测到这个值.

cross-platform r cran

7
推荐指数
1
解决办法
589
查看次数

跨多个工作站同步和维护相同的已安装软件包

我正在多个工作站(主要是Linux)上进行数据分析,我想在所有平台上维护相同的已安装软件包.我使用以下代码来同步与Dropbox结合使用的软件包:

rm(list=ls())
oldip <- read.csv("/home/USER/Dropbox/System/R/oldip.csv")
oldip<-as.character(oldip$x)
installed<-as.character(installed.packages()[,1])
symdiff <- function( x, y) { setdiff( union(x, y), intersect(x, y))}
for(i in symdiff(oldip, installed))  
     install.packages(i,repos="http://cran.at.r-project.org/" ) 
update.packages(checkBuilt = TRUE, ask = FALSE, repos="http://cran.at.r-project.org/")
rm(i);rm(installed)
oldip<-c(installed.packages()[,1])
write.csv(oldip, "/home/USER/Dropbox/System/R/oldip.csv")
Run Code Online (Sandbox Code Playgroud)

可以出问题并弄乱我的R装置吗?我应该避免使用这种方法"盲"和"自动"更新一些软件包吗?

r updates amazon-ec2 package cran

7
推荐指数
1
解决办法
1576
查看次数

为什么从CRAN中删除了包'epicalc'?

转到链接:

https://cran.r-project.org/web/packages/epicalc/index.html

您将获得以下消息:

Package ‘epicalc’ was removed from the CRAN repository.

Formerly available versions can be obtained from the archive.

Archived on 2015-05-12 as requested by the maintainer <cvirasak@medicine.psu.ac.th>.
Run Code Online (Sandbox Code Playgroud)

但没有给出进一步的解释.这似乎是一个发展良好且有用的软件包,为什么它被删除了?

r cran

7
推荐指数
1
解决办法
8999
查看次数

包具有VignetteBuilder字段,但没有预先构建的晕影索引

我正在向CRAN提交一份包裹,我收到了审核小组的以下警告:

包具有VignetteBuilder字段,但没有预先构建的晕影索引.

事实上我在跑步时也看到过devtools::release().我正在使用上一个R版本,R version 3.3.1并具有以下.Rmd插图来源:

---
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{<my vignette title>} 
  %\VignetteEngine{knitr::knitr}
  %\usepackage[utf8]{inputenc}
--- 
Run Code Online (Sandbox Code Playgroud)

此外,我已按默认方式包含knitrDESCRIPTION文件中:

Suggests:
    knitr
VignetteBuilder:
    knitr
Run Code Online (Sandbox Code Playgroud)

我环顾四周,虽然问题似乎很常见,但我还是无法理解索引为什么不构建(以及如何强制构建它).


这个问题和其中的链接是谷歌的顶级结果,但没有解决问题.

vignette r devtools package cran

7
推荐指数
1
解决办法
804
查看次数

R CDM 检查描述中可能存在拼写错误的单词

在我的包上,R CMD CHECK 返回一条关于 DECRIPTION 中可能拼写错误的单词的注释:

\n\n
* checking CRAN incoming feasibility ... NOTE \n> Possibly mis-spelled words in DESCRIPTION: \n> Laverny (10:602) \n> Rulli\xc3\xa8re (10:641)\n
Run Code Online (Sandbox Code Playgroud)\n\n

这两个词是我引用的一篇论文中的作者姓名,描述字段如下:

\n\n
Description: Provides S4 classes and methods to fit several copula models: The classic empirical checkerboard copula and the empirical checkerboard copula with known margins, see Cuberos, Masiello and Maume-Deschamps (2019) <doi:10.1080/03610926.2019.1586936> are proposed. These two models allow to fit copulas in high dimension with a small number of observations, and they …
Run Code Online (Sandbox Code Playgroud)

r cran

6
推荐指数
0
解决办法
1048
查看次数

标签 统计

cran ×10

r ×10

package ×2

amazon-ec2 ×1

c ×1

cross-platform ×1

dependencies ×1

devtools ×1

matrix ×1

packages ×1

rank ×1

s4 ×1

updates ×1

vignette ×1