Comprender la indexación de listas y las convenciones de paréntesis en R

Casi entiendo los índices de listas en R, pero tengo algunas preguntas persistentes. Específicamente, estoy tratando de entender el uso de múltiples índices para llegar a diferentes capas de datos en una lista, y los tipos de corchetes para usar en cada nivel con cada tipo de datos. Primero mostraré una lista de ejemplo simple y mi comprensión hasta ahora.

#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)

Nivel superior de indexación: L es una lista que contiene 3 elementos, x, y y z. Para ver un elemento en una lista, usa corchetes dobles.

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

Segundo nivel de indexación: simplemente agregue los índices para cualquier tipo de datos que el elemento tenga después de los corchetes dobles que especifican ese 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]]

3er nivel de indexación: simplemente continúe agregando corchetes para cada nivel.

#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]

OKAY. Eso es todo lo suficientemente sencillo. Utiliza [[elemento]] para listas y [fila, columna] para matrices e [índice] para vectores. Mis preguntas son sobre cuándo NO.

Preguntas:

Si usa un paréntesis doble para matrices y vectores, todavía funciona.Entonces, ¿hay alguna diferencia entre el paréntesis simple y doble para matrices y vectores?

Si usa un solo paréntesis con una lista, todavía funciona. Pero en lugar de devolver (como con [[1]]) el primer elemento como ese elemento, [1] devuelve una lista que contiene el elemento 1. Por lo tanto, puede usar la lista [c (elementos)] para obtener una lista con un subconjunto de elementos.¿Hay alguna otra razón por la que usaría corchetes individuales con una lista?

Realmente no toqué los marcos de datos aquí, que son un tipo de lista. Pero tienen forma de matrices y también puede ver los valores usando [fila, columna] como con las matrices.¿Existe algún "peligro" al usar la indexación [fila, columna] con marcos de datos?

nota: las discusiones anteriores fueron muy útiles, pero no respondieron estas preguntas específicas:¿Cómo usar correctamente las listas en R? La diferencia entre las anotaciones [] y [[]] para acceder a los elementos de una lista o marco de datos

Respuestas a la pregunta(0)

Su respuesta a la pregunta