2016-01-12 2 views
2

Я использовал installed.packages(), чтобы увидеть установленные пакеты в R. И я хочу извлечь два столбца из вывода «Пакеты» и «Версия» с помощью installed.packages()[c("Package","Version")], но он не показывает, чего я ожидаю. Но если я положил «» как раз перед „Упаковка“ (installed.packages()[,c("Package","Version")]) это работает! Почему это «» необходимо в заявлении?R, обнаружение установленных пакетов

ответ

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

Содержимое installed.packages() есть столбцы и строки и в Подменю [a, b], a являются строки и b столбцы вы просите столбцов, названных «пакет» и «версия», так что вы должны сказать ему, чтобы посмотреть на колоннах для этих имен

Более подробное руководство здесь:.. http://statmethods.net/management/subset.html и http://adv-r.had.co.nz/Subsetting.html

+1

Неправильно, полностью. '> is.data.frame (installed.packages()) [1] FALSE > is.array (installed.packages()) [1] TRUE' –

Смежные вопросы