2013-10-21 20 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

相关问题