2010-07-12 55 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