R,查找已安装的包

R, finding installed packages

我已经使用 installed.packages() 查看 R 中已安装的包。我想使用 installed.packages()[c("Package","Version")] 从输出中提取两列 "Packages" 和 "Version" 但是它没有显示我的期望。但是,如果我在 "Package" 之前放一个“,”(installed.packages()[,c("Package","Version")]) 就可以了!为什么语句中必须有一个“,”?

installed.packages()的内容有列和行,在子集[a, b]中,a是行,b是列。您正在请求名为 'package' 和 'version' 的列,因此您需要告诉它查看这些名称的列。

更多指导在这里:http://statmethods.net/management/subset.html and http://adv-r.had.co.nz/Subsetting.html

您需要 ? Extract 了解一下 R 中的索引。以下是有关如何理解您正在查看的对象的结构的一些提示:

> class(installed.packages())
[1] "matrix"
> dim(installed.packages())
[1] 173  16
> str(installed.packages())
 chr [1:173, 1:16] "aws.s3" "aws.signature" "BH" "bit" "bit64" ...
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:173] "aws.s3" "aws.signature" "BH" "bit" ...
  ..$ : chr [1:16] "Package" "LibPath" "Version" "Priority" ...

所以,这告诉我们对象是一个矩阵,有 173 行和 16 列。

  • 要从矩阵中提取,您可以使用像 matrix[rows, columns].
  • 这样的符号
  • 要获取所有行但仅获取某些列,您可以将其快捷方式设置为 matrix[, columns]
  • 要获取除某些行之外的所有列,您可以将其快捷方式设置为 matrix[rows,]

您可能期望该对象是 data.frame。 data.frame 允许您可能更熟悉的各种其他形式的 indexing/extraction:

> str(mtcars["mpg"])
'data.frame':   32 obs. of  1 variable:
 $ mpg: num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
> str(mtcars[["mpg"]])
 num [1:32] 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
> str(mtcars[, "mpg"])
 num [1:32] 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
> str(mtcars$mpg)
 num [1:32] 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...

为了将来的参考,如果您想知道哪个 GitHub 提交用于 GitHub 包:

install.packages("devtools")
library("devtools")
package_info("<package_name>")