R-function-only; A bit helps; github & R package

  • この記事の「なんちゃってRパッケージ」はこちら Here is the github containing files and directories handled in this note.
  • ヘルプを開いてもどんな関数があるのかもわからないのでは困るので、少しの手間をとることにする No help article is very inconvenient. Let's make functions' name can be found with minimal efforts.
  • R関数ファイルの冒頭に少し付け加えるとヘルプ記事に関数名が表れて、それをたどることができる。また、使用例も提示できる A few lines at the head of R files, help-index page make you accessible to function names. Examples can be shown.
  • この冒頭の#' で始まる諸行はdevtools, roxygen2パッケージが定めたヘルプ記事作成等のためのルールに則った書き方 The lines starting with "#'" are under the rule of packages roxygen2 and devtools and they are designed to make help articles automatically.
#' Dummy title
#'
#' Dummy description.
#' @examples
#' myfx1(10)
#' myfx2(5)
#' myfx4()

#' @export
myfx1 <- function(n){
	runif(n)
}
#' @export
myfx2 <- function(n){
	rnorm(n)
}

myfx3 <- function(){
	sample(1:100,1)
}

#' @export
myfx4 <- function(){
	n <- myfx3()
	rnorm(n)
}
  • ry1のときと同じようにする Do the same as ry1.
    • githubでry2なるレポジトリを作る Make a new repository "ry2".
    • そのcloneをローカルPCに作る Clone it to your local PC.
git clone https://github.com/ryamada22/ry2
    • ローカルの適当なところで Make files/directories with devtools' create() function.
create("ry2")
    • とした上で、githubとリンクしたry2ディレクトリに、中身をコピーする Copy all created by create() into the directory that is a clone of github repository.
    • さらに上掲のRファイルをRディレクトリに置き、R内で Put the R function file with several lines starting with "#'", then do below.
document()
    • とすれば、今度はmanフォルダ配下にRd拡張子のファイルができるので、これをgitでpushする。 Now document() function makes Rd file that will produce help articles. Push them into the github repository.
git add . -A
git commit -m "initial load"
git push
    • した上で、R内から Now you can install the package with install_github()
install_github("ryamada22/ry2")
    • とする。
help(package="ry2")

    • ヘルプに関数が表れ、以下もできる The help article is a bit more helpful with examples ready.
> help(myfx1)
> example(myfx1)

myfx1> myfx1(10)
 [1] 0.4855833533 0.0508817248 0.0002442701 0.1729956369 0.3587742602
 [6] 0.1240029063 0.9949723762 0.8547038008 0.9492026437 0.4630392240

myfx1> myfx2(5)
[1] -0.10737404 -0.24336732  0.02891265 -1.15511815 -0.37972347

myfx1> myfx4()
 [1]  0.68075399 -0.59733297 -0.88444090 -1.11709863  0.51956156 -2.20189769
 [7]  0.95041650  1.13752507  0.28040709 -2.49045772 -0.44143634  0.08091078
[13] -0.69441347  0.27771177 -0.34069538  0.85882135 -1.35573654  0.59540087
[19] -1.58066811  0.49591176  0.55091563  0.10492812 -0.89752846  0.19653910
[25] -1.45184492 -0.12961395  0.33749149 -1.26467991  0.12114392  0.14557968
[31]  0.60271704  1.76527599 -0.14464007 -0.12915736  0.04522390 -1.95035575
[37]  0.62250816 -0.45526105  0.70670769  0.31067635  0.52310174 -0.32906189
[43] -0.64183443  0.25254319 -0.37447017  1.25046523 -0.62680949 -1.28631025
[49]  0.70304051 -1.12430050 -0.20663646 -1.17374434 -2.35430426  1.58416113
[55]  0.70660643 -0.29303836  1.45214592  0.85660933  1.71813104  0.04238457
[61]  0.42764026  0.04008333 -1.62615541 -2.01381894  1.28770989 -0.71058551