我同样可以提出这个问题,"这对CRAN来说是否足够好?"
我有一系列我为特定任务建立的功能.其中一些是便利功能:
# Returns odds/evens from a vector
odds=function(vec) {
stopifnot(class(vec)=="integer")
ret = vec[fpart(vec/2)!=0]
ret
}
evens=function(vec) {
stopifnot(class(vec)=="integer")
ret = vec[fpart(vec/2)==0]
ret
}
Run Code Online (Sandbox Code Playgroud)
有些是次要的补充,已经证明在回答常见的SO问题时非常有用:
# Shift a vector over by n spots
# wrap adds the entry at the beginning to the end
# pad does nothing unless wrap is false, in which case it specifies whether to pad with NAs
shift <- function(vec,n=1,wrap=TRUE,pad=FALSE) {
if(length(vec)<abs(n)) {
#stop("Length of vector must be greater than the magnitude of n \n")
}
if(n==0) {
return(vec)
} else if(length(vec)==n) {
# return empty
length(vec) <- 0
return(vec)
} else if(n>0) {
returnvec <- vec[seq(n+1,length(vec) )]
if(wrap) {
returnvec <- c(returnvec,vec[seq(n)])
} else if(pad) {
returnvec <- c(returnvec,rep(NA,n))
}
} else if(n<0) {
returnvec <- vec[seq(1,length(vec)-abs(n))]
if(wrap) {
returnvec <- c( vec[seq(length(vec)-abs(n)+1,length(vec))], returnvec )
} else if(pad) {
returnvec <- c( rep(NA,abs(n)), returnvec )
}
}
return(returnvec)
}
Run Code Online (Sandbox Code Playgroud)
最重要的是在其他任何地方都找不到的现有类的扩展(例如,格子图的CDF面板函数,各种xtable和LaTeX输出函数,用于处理和转换地理空间对象类型的类以及执行各种类似GIS的操作,例如作为叠加).
我想在互联网上以R-ized格式提供这些内容(例如将它们发布在博客上,因为纯文本功能不是我正在寻找的),因此维护更容易,以便我和其他人可以访问他们来自我去的任何电脑.合乎逻辑的做法是用它们制作一个包并将它们发布到CRAN - 事实上我已经将它们打包了.但这个功能集合是否适合CRAN包?
我有两个主要问题:
CRAN网页令人惊讶地失去了发布指南.我应该发布到CRAN,因为有些人会觉得它很有用但是在某种意义上它会永远锁定R使一些非常基本的函数名称被占用?或者是否有另一个地方我可以使用install.packages-like命令来安装?注意我宁愿避免将包发布到网页,并让人们记住URL来安装包(尤其是版本控制问题).
我会用http://r-forge.r-project.org/.从页面顶部:
R-Forge为R软件包,R相关软件和其他项目的开发提供了一个中央平台.它基于FusionForge,可以轻松访问最好的SVN,每日构建和检查包,邮件列表,错误跟踪,留言板/论坛,站点托管,永久文件存档,完整备份和基于Web的总管理.