Devtools: @importFrom์ด ๋ณ€๊ฒฝ๋  ๋•Œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ์ด์ „ ์ •๋ณด๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2014๋…„ 01์›” 03์ผ  ยท  8์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: r-lib/devtools

๋‘ ๊ฐœ์˜ ํŒจํ‚ค์ง€๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  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 ํŒŒ์ผ์—๋งŒ ์ ์šฉ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์—ฌ๊ธฐ์—์„œ ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๋ฒ„๊ทธ์ธ๊ฐ€์š”?

๊ฐ์‚ฌ ํ•ด์š”!

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋„ค์ž„์ŠคํŽ˜์ด์Šค ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ณ  load_all()์„ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ devtools::docuement()๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ผ์„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  8 ๋Œ“๊ธ€

์ตœ์‹  ๋ฒ„์ „์˜ 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/

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰