R中是否有标准库?

8
几乎每种主要的编程语言都有标准库,但似乎R没有。在CRAN上有大量的自定义包,但我找不到一个称得上“标准库”的东西。`base`包似乎很接近,但还有`recommended`包,我找不到哪个更接近所谓的“标准库”。

每个 R 安装都带有一组 "开箱即用" 的软件包。这些是 标准软件包。干净地安装 R,启动它,然后输入 sessionInfo()。你会看到 stats、graphics、grDevices、utils、datasets、methods 和 base。这些是默认加载的唯一的“标准”软件包,但 R 附带了我链接的列表。 - joran
1
但是,“启动时加载”并不意味着“标准库”。例如,C++有一个广泛的标准库,但如果想使用它,仍然需要导入相应的内容。在R中是否存在标准库,即核心开发人员将他们认为对于R至关重要的所有功能放入经过策划的库中并称其为“标准库”,就像C++或Python一样?sessionInfo()显示的所有内容是否也由核心R开发人员维护? - l7ll7
我并没有说加载的包是“标准库”,我只是说它们是默认加载的。仅此而已。“标准”的那些只是R自带的包,就像我之前所说的那样。你可以争论推荐的包是否算作“标准库”的一部分,但我认为这种愚蠢的语义争论对任何事情都没有太多启示。这些包是推荐使用的,在二进制安装中会被包含,但在R的源代码安装中可能不会。 - joran
“recommended” 包可能是虚拟的 Debian/Ubuntu 包,根据其他评论和答案中的建议,它会拉取所有优先级为 Recommend 的包。有经验的 R 用户会告诉您它所拉取的实际包。 - Dirk Eddelbuettel
是的,有。https://stat.ethz.ch/R-manual/R-devel/doc/html/packages.html - Tacet
显示剩余2条评论
1个回答

7

Bill Dunlap分享了如何识别您所使用的R版本中标准分发的所有软件包的代码。

i <- installed.packages() 
i[ i[,"Priority"] %in% c("base","recommended"), c("Package", "Priority")] 

“推荐的”软件包已经随着R一起提供,但是当R启动时不会自动加载。
编辑以包括joran的评论:“这些软件包是推荐的,并且将在二进制安装中,但可能不在R的源代码安装中。”
参考:http://r.789695.n4.nabble.com/List-of-default-packages-that-come-with-R-td4661857.html R 3.4.1 的结果。
           Package      Priority     
base       "base"       "base"       
boot       "boot"       "recommended"
class      "class"      "recommended"
cluster    "cluster"    "recommended"
codetools  "codetools"  "recommended"
compiler   "compiler"   "base"       
datasets   "datasets"   "base"       
foreign    "foreign"    "recommended"
graphics   "graphics"   "base"       
grDevices  "grDevices"  "base"       
grid       "grid"       "base"       
KernSmooth "KernSmooth" "recommended"
lattice    "lattice"    "recommended"
MASS       "MASS"       "recommended"
Matrix     "Matrix"     "recommended"
methods    "methods"    "base"       
mgcv       "mgcv"       "recommended"
nlme       "nlme"       "recommended"
nnet       "nnet"       "recommended"
parallel   "parallel"   "base"       
rpart      "rpart"      "recommended"
spatial    "spatial"    "recommended"
splines    "splines"    "base"       
stats      "stats"      "base"       
stats4     "stats4"     "base"       
survival   "survival"   "recommended"
tcltk      "tcltk"      "base"       
tools      "tools"      "base"       
utils      "utils"      "base" 

这太棒了!除了 baserecommended,R 是否还附带了其他软件包(但可能在启动时未加载)? - l7ll7
1
不是的。i 的优先级列要么是 base,它在启动时加载,要么是 recommended,它已安装但未加载,或者是 NA,这意味着用户从其他来源(如 CRAN、Github、Bioconductor 等)安装了它。 - Benjamin
“grid”在“base”列表中,但需要加载。有人知道为什么吗? - prosoitos
也许是因为它是最近添加的,他们不想改变默认加载的内容。但是那么,为什么它没有被添加到“推荐”列表中呢?我有点困惑。 - prosoitos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接