R,找到已安装的软件包

时间:2016-01-12 14:45:16

标签: r package subset

我使用installed.packages()来查看R中已安装的软件包。我想从输出中提取两列," Packages"和"版本"使用installed.packages()[c("Package","Version")],但它没有显示我的期望。但是,如果我放一个","就在" Package"之前(installed.packages()[,c("Package","Version")])它有效!为什么声明中需要",#34;

3 个答案:

答案 0 :(得分:3)

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

此处提供更多指导:http://statmethods.net/management/subset.htmlhttp://adv-r.had.co.nz/Subsetting.html

答案 1 :(得分:2)

您需要让? 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允许您可能更熟悉的各种其他形式的索引/提取:

> 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 ...

答案 2 :(得分:0)

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

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