๋ ๊ฐ์ ํจํค์ง๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ค๊ณ ๊ฐ์ ํ๊ณ foo
๋ฐ bar
๋ผ๊ณ ํฉ๋๋ค. bar
๋ baz
ํจ์๋ฅผ ๋ด๋ณด๋ด๊ณ foo
๋ @importFrom
๋ฅผ ์ฌ์ฉํ์ฌ help.R ํ์ผ์์ ๊ฐ์ ธ์ต๋๋ค. ์ฆ, foo/R/help.R์๋ ๋ค์์ด ์์ต๋๋ค. ๋ผ์ธ <strong i="11">@importFrom</strong> bar baz
. document
๋ ๋ค์์คํ์ด์ค ํ์ผ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์์ฑ๋์ด importFrom(bar,baz)
๊ฐ ๋ฉ๋๋ค.
์ด์ bar
ํจํค์ง์์ baz
bash
$๋ก ๋ณ๊ฒฝํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. foo/R/help.R ์ <strong i="19">@importFrom</strong> bar bash
๋ก ์
๋ฐ์ดํธํฉ๋๋ค. ํ์ง๋ง document
ํ๋ฉด ๋ค์์คํ์ด์ค๊ฐ importFrom(bar,bash)
๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๊ฐํ์ง๋ง importFrom(bar,baz)
๋ฅผ ์ญ์ ํ์ง ์์ผ๋ฏ๋ก install
์คํํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋๋ clean = TRUE
์ธ์๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋ฐ ์ด๊ฒ๋ ์ญ์ ์ ๋ฆฌํ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง, ๊ทธ๊ฒ์ man ํ์ผ์๋ง ์ ์ฉ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ด๊ฐ ์ฌ๊ธฐ์์ ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์ต๋๊น? ์๋๋ฉด ๋ฒ๊ทธ์ธ๊ฐ์?
๊ฐ์ฌ ํด์!
์ต์ ๋ฒ์ ์ roxygen2๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ๋งค๋ฒ NAMESPACE ํ์ผ์ ์ฒ์๋ถํฐ ๋ค์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
์, roxygen2 v3.0.0์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ธ์ ์ ๋ณด()
R ๋ฒ์ 3.0.2(2013-09-25)
ํ๋ซํผ: x86_64-apple-darwin10.8.0(64๋นํธ)
์ฅ์:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
์ฒจ๋ถ๋ ๊ธฐ๋ณธ ํจํค์ง:
[1] ํต๊ณ ๊ทธ๋ํฝ ๋ฐ์ดํฐ ์ธํธ grDevices utils ๋ฉ์๋ ๊ธฐ๋ฐ
๋ค๋ฅธ ์ฒจ๋ถ ํจํค์ง:
[1] ํ๋ผ์ด์ด_1.8 ...
extrafont_0.15
[25] roxygen2_3.0.0 testthat_0.7.1
[27] devtools_1.4.1
๋ค์์คํ์ด์ค๋ฅผ ํตํด ๋ก๋๋จ(์ฐ๊ฒฐ๋์ง ์์):
[1] biglm_0.9-1 boot_1.3-9 brew_1.0-6 cluster_1.14.4 codetools_0.2-8
[6] colorspace_1.2-4 corrplot_0.73 data.table_1.8.10 dichromat_2.0-0 digest_0.6.4
[11]evaluate_0.5.1 extrafontdb_1.0 formatR_0.10 Formula_1.1-1 ggplot2_0.9.3.1
[16] gmp_0.5-11 grid_3.0.2 gtable_0.1.2 Hmisc_3.13-0 httr_0.2
[21]nitr_1.5 labeling_0.2 lattice_0.20-24 lubridate_1.3.3 MASS_7.3-29
[26] memoise_0.1 munsell_0.4.2 parallel_3.0.2 proto_0.3-10 R.cache_0.9.0
[31] R.methodsS3_1.5.2 R.oo_1.15.8 R.utils_1.28.4 RColorBrewer_1.0-5 RCurl_1.95-4.1
[36] reshape2_1.2.2 rjson_0.2.13 Rttf2pt1_1.2 scales_0.2.3 splines_3.0.2
[41] stringr_0.6.2 ์์กด_2.37-4 ๋๊ตฌ_3.0.2 ์์ผ_0.3-2 xtable_1.7-1
๋ค๋ฅธ ๊ณณ์ <strong i="5">@importFrom</strong> x y
๊ฐ ์๋ ๊ฒ์ด ํ์คํฉ๋๊น?
๋ถ๋ช ํ ๊ฒ์ ์์ง๋ง ๋ด๊ฐ ์์ํ์ง ๋ชปํ ๊ณณ์ ๋ญ๊ฐ๊ฐ ๋จ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ๊ณ์ ์ฐพ์ ๊ฒ์ด๋ค; ๊ท์ฐฎ๊ฒ ํด์ ์ฃ์กํฉ๋๋ค.
@importFrom
์ ๊ด๋ จ๋ ์ค๋ฅ๋ฅผ ์์ฑํ๋ MWE๋ฅผ ์์ฑํ ์ ์์๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์ฌ๋ ๊ฒ์
๋๋ค(๋ด ์๋ ๊ฒ์๋ฌผ๊ณผ ์์ ํ ๊ด๋ จ์ด ์๋์ง๋ ํ์คํ์ง ์์ง๋ง).
๋ฒ ์ด๋ณธ ํ์ผ๋ก ์ค์ผ๋ ํค ํจํค์ง๋ฅผ ๊ตฌ์ฑํ๊ณ help.R
ํ์ผ๋ง ํธ์งํ์ต๋๋ค. ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
#' <strong i="9">@docType</strong> package
#'
#' <strong i="10">@importFrom</strong> plyr ddply
NULL
document(package_directory, clean = TRUE)
( package_directory
๋ ํจํค์ง ๊ฒฝ๋ก๋ฅผ ๋ณด์ ํ๋ ๋ณ์)๋ฅผ ํธ์ถํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค. ์ด์ help.R
๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํฉ๋๋ค.
#' <strong i="17">@docType</strong> package
#'
#' <strong i="18">@importFrom</strong> plyr
NULL
document(package_directory, clean = TRUE)
๋ฅผ ํธ์ถํ๋ฉด ์์๋๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
Error in asChar(ivars) :
empty name in directive 'importFrom' in 'NAMESPACE' file
์ด์ ๋์๊ฐ์ help.R
๋ฅผ ์์ ํ์ฌ ์๋๋๋ก ๋์๊ฐ์๋ค.
#' <strong i="27">@docType</strong> package
#'
#' <strong i="28">@importFrom</strong> plyr ddply
NULL
document(package_directory, clean = TRUE)
์ ํธ์ถํ๋ฉด ๋๋๊ฒ๋ ์ฌ์ ํ help.R
ํ์ฐํ์ ๋ ๋ฐ์ํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. document
๊ฐ NAMESPACE
ํ์ผ์ ๋ฌด์ํ๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์์ ์ ์๋ํ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ ๊ฒ์
๋๋ค.
์ถ๊ฐ ๋ณํ์ ๋ฌผ๊ฑด์ ๋ถ์๊ณ document
๋ฅผ ์ฌ์ฉํ๋ ๋์ roxygenize
๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์๋ํ๋ค๋ ๊ฒ์
๋๋ค.
roxygen
๋ฌธ์์ ๋ฐ๋ฅด๋ฉด "๊ฐ๋จํ ํจํค์ง๊ฐ ์๋ ๊ฒฝ์ฐ roxygenise()
์ ์ฌ์ฉํ ์ ์์ง๋ง ๋ ๋ณต์กํ ๊ฒ์ ๊ฒฝ์ฐ document()
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค." ๊ทธ๋ ๋ค๋ฉด document
๋ ์ฌ๊ธฐ์์ ์๋ํ์ง ์์ง๋ง roxygenize
๋ ์๋ํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ๊ทธ๋ฆฌ๊ณ ์ธ์ ๊ฐ๊ฐ์ ์ฌ์ฉํด์ผ ํฉ๋๊น?
๋ฒ์ ์ ์ต์ ์ํ์ ๋๋ค.
> sessionInfo()
R version 3.0.3 (2014-03-06)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics datasets grDevices utils methods base
other attached packages:
[1] plyr_1.8.1 extrafont_0.16 roxygen2_3.1.0 testthat_0.8.1 devtools_1.4.1
์, ๋ฌธ์ ๋ document()
๊ฐ ํจํค์ง๋ฅผ ๋ก๋ํ๊ธฐ ์ํด ๋จผ์ load_all()
๋ฅผ ์คํํด์ผ ํ๊ณ , ๋ค์์คํ์ด์ค๋ฅผ ๊นจ๋จ๋ฆฌ๋ฉด ๋ก๋ํ ๋ฐฉ๋ฒ์ด ์๋ค๋ ๊ฒ์
๋๋ค. ์ด ์๋๋ฆฌ์ค์์๋ ์ผ๋ฐ์ ์ผ๋ก git์ ๋ณ๊ฒฝ ์ฌํญ์ ์คํ ์ทจ์ํฉ๋๋ค.
๋ค์์คํ์ด์ค ํ์ผ์ ์ญ์ ํ๊ณ load_all()์ ์ํํ ๋ค์ devtools::docuement()๋ฅผ ์ํํฉ๋๋ค. ๊ทธ๊ฒ์ ์ผ์ํด์ผํฉ๋๋ค.
์ด ์ค๋๋ ๋ฌธ์ ๋ ์๋์ผ๋ก ์ ๊ฒผ์ต๋๋ค. ๊ด๋ จ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ค๊ณ ์๊ฐ๋๋ฉด ์ ๋ฌธ์ (reprex ํฌํจ)๋ฅผ ์ ์ถํ๊ณ ์ด ๋ฌธ์ ์ ๋ํ ๋งํฌ๋ฅผ ์์ฑํ์ญ์์ค. https://reprex.tidyverse.org/
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ค์์คํ์ด์ค ํ์ผ์ ์ญ์ ํ๊ณ load_all()์ ์ํํ ๋ค์ devtools::docuement()๋ฅผ ์ํํฉ๋๋ค. ๊ทธ๊ฒ์ ์ผ์ํด์ผํฉ๋๋ค.