安装的 R 包大小

geo*_*bio 5 r

有没有办法知道 R 中安装的每个包的大小是多少?我的意思是,我的计算机上每个包的大小。

任何评论将不胜感激。

谢谢

Dir*_*tel 3

或者同样不需要fs这里(如果您使用的是正确的操作系统):

> system(paste("du -sh", system.file(package="dplyr"), "| awk '{print $1}'"), intern=TRUE)
[1] "2.1M"
> 
Run Code Online (Sandbox Code Playgroud)

因为

$ du -sh /usr/local/lib/R/site-library/dplyr
2.1M    /usr/local/lib/R/site-library/dplyr
$ 
Run Code Online (Sandbox Code Playgroud)

.libPaths()[1]例如,很容易概括地查看 中的所有条目。

编辑:但是由于问题是关于整个目录的,所以我们也尝试一下。观察du --help让我了解-d 1 我们想要什么。然后:

 > res <- read.table(pipe("du -d 1 /usr/local/lib/R/site-library/"), col.names=c("size", "name"))                                                                                                                  
!> head(res)                                                                                                                                                                                                       
    size                                       name                                                                                                                                                                
 1 15376  /usr/local/lib/R/site-library/StanHeaders                                                                                                                                                                
 2   540     /usr/local/lib/R/site-library/restfulr                                                                                                                                                                
 3  1028 /usr/local/lib/R/site-library/mlr3learners                                                                                                                                                                
 4  1360       /usr/local/lib/R/site-library/ndjson                                                                                                                                                                
 5  3920      /usr/local/lib/R/site-library/viridis                                                                                                                                                                
 6   300  /usr/local/lib/R/site-library/sessioninfo                                                                                                                                                                
 >  
Run Code Online (Sandbox Code Playgroud)

显然,这可以通过修改固定路径来获取路径.libPaths()[1]并编辑列名称。gsub()但 git 就在那里,通过不指定“人类可读”的漂亮大小,我们也可以轻松排序和计算:

> head(res[order(-res$size), ])
        size                                              name
1030 2964632                    /usr/local/lib/R/site-library/
137   322800   /usr/local/lib/R/site-library/covid19.model.sa2
187   276324 /usr/local/lib/R/site-library/stxBrain.SeuratData
971   153532                  /usr/local/lib/R/site-library/BH
691    95368               /usr/local/lib/R/site-library/rstan
940    85972               /usr/local/lib/R/site-library/GO.db
> 
Run Code Online (Sandbox Code Playgroud)

编辑 2为了好玩,这里是一个根据需要.libPaths()聚合所有目录 的循环。

res <- do.call(rbind, lapply(.libPaths(), \
       function(d) read.table(pipe(paste("du -d 1", d)),  \
                              col.names=c("size", "name"))))
Run Code Online (Sandbox Code Playgroud)