2010-07-12 6 views
5

Cuando intento para eliminar la última fila de un solo cuadro de datos de columna, aparece un vector de espalda en lugar de una trama de datos:Eliminar filas de una trama de datos de una sola columna

> df = data.frame(a=1:10) 
> df 
    a 
1 1 
2 2 
3 3 
4 4 
5 5 
6 6 
7 7 
8 8 
9 9 
10 10 

> df[-(length(df[,1])),] 
[1] 1 2 3 4 5 6 7 8 9 

El comportamiento estoy buscando es lo que sucede cuando se utiliza este comando en una trama de datos de dos columnas:

> df = data.frame(a=1:10,b=11:20) 
> df 
    a b 
1 1 11 
2 2 12 
3 3 13 
4 4 14 
5 5 15 
6 6 16 
7 7 17 
8 8 18 
9 9 19 
10 10 20 

> df[-(length(df[,1])),] 
    a b 
1 1 11 
2 2 12 
3 3 13 
4 4 14 
5 5 15 
6 6 16 
7 7 17 
8 8 18 
9 9 19 

Mi código es general, y no sé a priori si la trama de datos contendrá una o varias columnas. ¿Existe una solución fácil para este problema que me permita eliminar la última fila sin importar cuántas columnas existan?

Respuesta

13

Trate de añadir la opción drop = FALSE:

R> df[-(length(df[,1])), , drop = FALSE] 
    a 
1 1 
2 2 
3 3 
4 4 
5 5 
6 6 
7 7 
8 8 
9 9 
+0

perfecto. Gracias. – chrisamiller

Cuestiones relacionadas