2010-07-12 59 views
5

删除行当我试图从一列数据帧中删除最后一排,我得到一个载体,而不是回的数据帧:从单列数据帧

> 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 

我的行为寻找的是当我的两列数据帧上使用该命令会发生什么:

> 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 

我的代码是通用的,我不知道先验的数据帧是否将包含一个或多个列。对于这个问题,是否有一个简单的解决方法可以让我删除最后一行,不管有多少列?

回答

13

尝试添加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

完美。谢谢。 – chrisamiller 2010-07-12 23:27:48