En R, ¿por qué seleccionar filas de un marco de datos devuelve datos como un vector si el marco de datos tiene solo una columna?

Supongamos que queremos acceder a los datos de un marco de datos por fila. Los ejemplos se simplifican, pero al ordenar un marco de datos por nombres de fila, por ejemplo, df[order(row.names(df)]) utilizamos la misma técnica.

Si el marco de datos tiene una columna, recuperamos un vector atómico:

> df
    x1
a   x
b   y
c   z

> df[1, ] # returns atomic vector
[1] x 

Si el marco de datos tiene dos columnas, recuperamos un marco de datos de 1 fila que incluye el nombre de la fila:

> df
    x1 x2
a   x  u
b   y  v
c   z  w 

> df[1, ] # returns data frame
   X1 X2
a  x  u 

No entiendo por qué la misma operación en el marco de datos produce dos tipos de resultados dependiendo de cuántas columnas tenga el marco.

Respuestas a la pregunta(1)

Su respuesta a la pregunta