Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I tell which packages I am not using in my R script?

Tags:

r

packages

As my code evolves from version to version, I'm aware that there are some packages for which I've found better/more appropriate packages for the task at hand or whose purpose was limited to a section of code which I've now phased out.

Is there any easy way to tell which of the loaded packages are actually used in a given script? My header is beginning to get cluttered.

like image 672
MichaelChirico Avatar asked Apr 02 '15 14:04

MichaelChirico


2 Answers

Update 2020-04-13

I've now updated the referenced function to use the abstract syntax tree (AST) instead of using regular expressions as before. This is a much more robust way of approaching the problem (it's still not completely ironclad). This is available from version 0.2.0 of funchir, now on CRAN.


I've just got around to writing a quick-and-dirty function to handle this which I call stale_package_check, and I've added it to my package (funchir).

e.g., if we save the following script as test.R:

library(data.table)
library(iotools)
DT = data.table(a = 1:3)

Then (from the directory with that script) run funchir::stale_package_check('test.R'), we'll get:

Functions matched from package data.table: data.table

**No exported functions matched from iotools**

like image 66
MichaelChirico Avatar answered Oct 04 '22 20:10

MichaelChirico


I've written a command-line script to accomplish this task. You can find it in this Github gist. I'm sure there are edge cases that it misses, but it works pretty well, on both R scripts and Rmd files.

like image 35
Ryan C. Thompson Avatar answered Oct 04 '22 20:10

Ryan C. Thompson