2013-10-21 18 views
1

我不是新來的R,但我不能解決這個問題:我有一個data.frame,並希望用coloumn切換綁定相同的data.frame。但R不切換列。Rbind與列切換相同的數據幀

例子:

set.seed(13) 
df <- data.frame(var1 = sample(5), var2 = sample(5)) 
> df 
    var1 var2 
1 4 1 
2 1 3 
3 2 4 
4 5 2 
5 3 5 

> rbind(df, df[,c(2,1)]) 
    var1 var2 
1  4 1 
2  1 3 
3  2 4 
4  5 2 
5  3 5 
6  4 1 
7  1 3 
8  2 4 
9  5 2 
10 3 5 

正如你所看到的,coloumns不切換(行6-10),而單獨切換欄就像一個魅力:

> df[,c(2,1)] 
    var2 var1 
1 1 4 
2 3 1 
3 4 2 
4 2 5 
5 5 3 

我想這有與列名有關,但我無法弄清楚什麼是可惡的。

任何人都可以幫忙嗎?

親切的問候!

+2

從'?rbind.data.frame':「'rbind'數據框方法按名稱(而不是按位置)匹配列」。 – Henrik

回答

1

正如指出的@Henrik,從?rbind.data.frame道:「rbind數據幀的方法[...]按名稱匹配列,以便試試這個:

> rbind(df, setNames(df[,c(2,1)], c("var1", "var2"))) 
    var1 var2 
1  4 1 
2  1 3 
3  2 4 
4  5 2 
5  3 5 
6  1 4 
7  3 1 
8  4 2 
9  2 5 
10 5 3 

這也適用:

> rbind(as.matrix(df), as.matrix(df[,c(2,1)])) 
+1

謝謝!可以同時使用這兩種解決方案! – ahs85

相關問題