소개

이것은 RStudio : addins 시리즈의 첫 번째 게시물입니다. 이 시리즈의 목적은 유용한 addins을 RStudio IDE에 통합 할 수있는 기능을 포함하는 R 패키지를 작성하여 독자를 안내하는 것입니다. 이 첫 번째 기사의 끝 부분에서 RStudio는 1 개의 유용한 추가 기능을 제공합니다.

이 기사에서 addins 기능을 추가하면 RStudio에서 R 바닐라 모드의 스크립트를 키보드 단축키로 열고 RStudio에서 스크립트의 출력 파일을 열 수 있습니다.

addins를 이용하면 스크립트를 공유하기 전에 먼저 테스트 할 수있는 좋은 도구로 사용자와 동일한 시작 옵션 (예 : 미리로드 된 환경, 사이트 파일 등)이없는 사용자가 스크립트를 재현 할 수 있는지 여부를 테스트 할 때 유용합니다.

관련 코드는  https://gitlab.com/jozefhajnala/jhaddins.git 에서 확인하실 수 있습니다.

선행 조건 및 권장 사항

이 시리즈를 최대한 활용하려면 다음과 같은 선행조건이 필요합니다.:

  1. R : 버전 3.4.3 이상 64bit
  2. RStudio IDE : 버전 1.1.383 이상
  3. 기타 추천 사항
  • git : 형상관리
  • TortoiseGit : 예쁜 아이콘과 함께 Windows를 사용하는 사람들을위한 유용한 쉘 인터페이스
  1. 추천 R packages
  • devtools – 개발을보다 쉽게 해줌
  • testthat – RStudio에 통합 된 단위 테스트를위한 프레임 워크 제공
  • roxygen2 – 코드 문서를 쉽게 만들어 줌

1 단계 – 패키지 만들기

  1. Use  devtools::create to create a package (note that we will update more  DESCRIPTION fields later and you can also choose any path you like and it will be reflected in the name of the package)

  1. In RStudio or elsewhere navigate to the  jhaddins folder and open the project  jhaddins.Rproj (or the name of your project if you chose a different path)
  2. Run the first check and install the package

  1. Optionally, initialize git for version control

Step 2 – Writing the first functions

We will now write some functions into a file called makeCmd.R that will let us run the desired functionality:

  1. makeCmd to create a command executable via  system or  shell, with defaults set up for executing an R file specified by  path

  1. executeCmd to execute a command

  1. replaceTilde for Linux purposes

  1. And finally the function which will be used for the addin execution –  runCurrentRscript to retrieve the path to the currently active file in RStudio, run it, write the output to a file  output.txt and open the file with output.

Step 3 – Setting up an addin

Now that we have all our functions ready, all we have to do is create a file addins.dcf under the  \inst\rstudio folder of our package. We specify the  Name of the addin, write a nice  Description of what it does and most importantly specify the  Binding to the function we want to call:

creating addins.dcf under inst/rstudio

creating addins.dcf under inst/rstudio

Now we can rebuild and install our package and in RStudio’s menu navigate to  Tools -> Addins -> Browse Addins..., and there it is – our first addin. For the best experience, we can click the  Keyboard Shortcuts...button and assign a keyboard shortcut to our addin for easy use.

setting an RStudio addin keyboard shortcut

setting an RStudio addin keyboard shortcut

Now just open an R script, hit our shortcut and voilà, our script gets execute via RScript in vanilla mode.

Step 4 – Updating our  DESCRIPTION and  NAMESPACE

As our last steps, we should

  1. Update our DESCRIPTION file with  rstudioapi as  Imports, as we will be needing it before using our package:

  1. Update our NAMESPACE by importing the functions from other packages that we are using, namely:

Now we can finally rebuild and install our package again and run a  CHECK to see that we have no errors, warnings and notes telling us something is wrong. Make sure to use the  document = FALSE for now.

What is next – Always paying our (technical) debts

In the next post of the series, we will pay our debt of

  • missing documentation for our functions, that will help us to generate updates to our  NAMESPACE automatically and help us get a nice documentation so that we can read about our functions using  ?
  • and unit tests to help us sleep better knowing that our functions get tested!

Wrapping up

We can quickly create an RStudio addin by:

  1. Creating an R package
  2. Writing a function in that package
  3. Creating a  addins.dcf in  \inst\rstudio folder of our package

TL;DR – Just give me the package

Use git clone from:  https://gitlab.com/jozefhajnala/jhaddins.git

References

출처: RStudio:addins part 1. – code reproducibility testing – Jozef’s Rblog