Noções básicas sobre indexação de lista e convenções de colchetes no R

Quase entendo os índices da lista em R, mas tenho algumas perguntas remanescentes. Especificamente, estou tentando entender o uso de vários índices para obter diferentes camadas de dados em uma lista e os tipos de colchetes a serem usados em cada nível com cada tipo de dados. Primeiro, mostrarei uma lista de exemplos simples e meu entendimento até agora.

#Make an example list "L" containing different types of data
x<- matrix(1:12,3,4)
y<- seq(2,17,3)
z<- list(letters[1:5],LETTERS[1:5],letters[6:10],LETTERS[6:10])
L<- list(x,y,z)

Nível superior de indexação: L é uma lista que contém 3 elementos, x, ye z. Para ver um elemento em uma lista, use colchetes duplos.

#see matrix x, the first element of list L
x
L[[1]]

Segundo nível de indexação: basta adicionar os índices para qualquer tipo de dado que o elemento esteja após os colchetes duplos que especificam esse elemento.

#List L's first element is matrix x, see x's row 2 column 3 value:
x[2,3]
L[[1]][2,3]
#List L's second element is vector y, see y's 4th value:
y[4]
L[[2]][4]
#List L's third element is list z, see z's first element:
z[[1]]
L[[3]][[1]]

Terceiro nível de indexação: continue adicionando colchetes para cada nível.

#List L's third element is list z, list z's first element is vector letters[1:5],
#see list z's first element's fifth value:
letters[1:5][5]
z[[1]][5]
L[[3]][[1]][5]

ESTÁ BEM. Então, isso é direto o suficiente. Você usa [[elemento]] para listas e [linha, coluna] para matrizes e [índice] para vetores. Minhas perguntas são sobre quando você NÃO.

Questões:

Se você usar um colchete duplo para matrizes e vetores, ainda funcionará.Existe alguma diferença entre o colchete simples e duplo para matrizes e vetores?

Se você usar um único colchete com uma lista, ele ainda funcionará. Mas, em vez de retornar (como [[1]]) o primeiro elemento como esse elemento, [1] retorna uma lista que contém o elemento 1. Portanto, você pode usar a lista [c (elementos)] para obter uma lista com um subconjunto de elementos.Existe algum outro motivo para você usar colchetes simples com uma lista?

Eu realmente não toquei nos quadros de dados aqui, que são um tipo de lista. Mas eles têm o formato de matrizes e você também pode ver valores usando [linha, coluna] como nas matrizes.Existe algum "perigo" em usar a indexação [linha, coluna] com quadros de dados?

nota: as discussões anteriores foram muito úteis, mas não responderam a estas perguntas específicas:Como usar corretamente listas em R? A diferença entre as notações [] e [[]] para acessar os elementos de uma lista ou dataframe

questionAnswers(0)

yourAnswerToTheQuestion