В R при использовании средства доступа «[», каково поведение по умолчанию при использовании на фреймах данных? - PullRequest
1 голос
/ 06 января 2020

При использовании

?'[.data.frame'

я получил следующий пример в справке:

> sw <- swiss[1:5, 1:4]  # select a manageable subset
> 
> sw[1:3]      # select columns
             Fertility Agriculture Examination
Courtelary        80.2        17.0          15
Delemont          83.1        45.1           6
Franches-Mnt      92.5        39.7           5
Moutier           85.8        36.5          12
Neuveville        76.9        43.5          17
> sw[, 1:3]    # same
             Fertility Agriculture Examination
Courtelary        80.2        17.0          15
Delemont          83.1        45.1           6
Franches-Mnt      92.5        39.7           5
Moutier           85.8        36.5          12
Neuveville        76.9        43.5          17
> sw[4:5, 1:3] # select rows and columns
           Fertility Agriculture Examination
Moutier         85.8        36.5          12
Neuveville      76.9        43.5          17

Я не нашел справочный документ о том, как это происходит. Если я просто предоставлю одно значение или запятую и значение, указывающее только столбцы?

Однако, если я поставлю запятую после первого значения в скобках, то это значение теперь указывает записи, которые нужно вернуть? По умолчанию возвращаются все столбцы, если они не указаны?

Например:

> sw[1:3,]
             Fertility Agriculture Examination Education
Courtelary        80.2        17.0          15        12
Delemont          83.1        45.1           6         9
Franches-Mnt      92.5        39.7           5         5

Я получаю все столбцы, но опять же не вижу, где это указано в справке. Есть ли лучшая официальная документация?

1 Ответ

4 голосов
/ 06 января 2020

Ответ на этот вопрос содержится в разных файлах справки. На вопрос -

If I just supply one value or comma and a value that indicates just columns?

Да, с ?"[.data.frame"

Когда [и [[используются с одним индексом вектора (x [i] или x [[i] ]]), они индексируют фрейм данных, как если бы он был списком.

Фреймы данных - это список, столбцы которого являются элементами списка, поэтому поднабор выполняется здесь так, как если бы вы поднастраивали список.


Для

sw[1:3,]
I get all columns - but again I don't see where that is specified in the help

В ?Extract

Пустой индекс (пробел, разделенный запятыми) указывает, что выбраны все записи в этом измерении

...