我使用installed.packages()
来查看R中已安装的软件包。我想从输出中提取两列," Packages"和"版本"使用installed.packages()[c("Package","Version")]
,但它没有显示我的期望。但是,如果我放一个","就在" Package"之前(installed.packages()[,c("Package","Version")])
它有效!为什么声明中需要",#34;
答案 0 :(得分:3)
string.Compare
的内容包含列和行,在子集中installed.packages()
,[a, b]
是行,a
是列。您要求的是名为“package”和“version”的列,因此您需要告诉它查看这些名称的列。
此处提供更多指导:http://statmethods.net/management/subset.html和http://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>")