Можно создать дубликат:
In R, what is the difference between the [] and [[]] notations for accessing the elements of a list?В чем разница между [1], [1,], [, 1], [[1]] для кадра данных в R?
Я запутался с разницей в [1], [1,], [, 1], [[1]] для типа dataframe ,
Как я знаю, [1,] выберет первую строку matrix
, [, 1] выберет первый столбец. [[1]] выберет первый элемент list
.
Но я проверил документ data.frame
, который говорит
Фрейм данных представляет собой список переменных одного и того же количества строк с уникальными именами строк
Тогда я напечатал в некоторых кода для проверки использования.
>L3 <- LETTERS[1:3]
>(d <- data.frame(cbind(x=1, y=1:10), fac=sample(L3, 10, replace=TRUE)))
x y fac
1 1 1 C
2 1 2 B
3 1 3 C
4 1 4 C
5 1 5 A
6 1 6 B
7 1 7 C
8 1 8 A
9 1 9 A
10 1 10 A
> d[1]
x
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
>d[1,]
x y fac
1 1 1 C
>d[,1]
[1] 1 1 1 1 1 1 1 1 1 1
>d[[1]]
[1] 1 1 1 1 1 1 1 1 1 1
Что меня смутило это: [1] и [1] используется только в matrix
. [[1]] используется только в list
, а [1] используется в vector
, но почему все они доступны в dataframe?
Может ли кто-нибудь объяснить разницу в этих целях?
Фактически [[]] также может использоваться с кадрами данных – Alex