合并 2 个具有匹配列名的数据框;每个匹配的列彼此相邻
Merging 2 data frame with matched column names; each matched column next to each other
我希望合并两个具有相同长度和列名的数据框,这样我就可以让具有相同名称的列的值彼此相邻。
一个简单的例子
ex1<-data.frame( c(1:5), c(2:6), c(9:13) )
ex2<-data.frame( c(12:16), c(23:27), c(100:104) )
colnames(ex1)=c("a","b","c")
colnames(ex2)=c("a","b","c")
这会给
> ex1
a b c
1 1 2 9
2 2 3 10
3 3 4 11
4 4 5 12
5 5 6 13
> ex2
a b c
1 12 23 100
2 13 24 101
3 14 25 102
4 15 26 103
5 16 27 104
我想要的是:
> comb_ex
a a b b c c
1 1 12 2 23 9 100
2 2 13 3 24 10 101
3 3 14 4 25 11 102
4 4 15 5 26 12 103
5 5 16 6 27 13 104
此外,合并数据框后,如何重命名列,保留其原始名称,但添加索引以便识别这些值来自哪个数据框?
> comb_ex
a1 a2 b1 b2 c1 c2
1 1 12 2 23 9 100
2 2 13 3 24 10 101
3 3 14 4 25 11 102
4 4 15 5 26 12 103
5 5 16 6 27 13 104
这似乎不言自明。查看 ?cbind.data.frame
、?make.unique
、?'names<-'
和 ?"["
的帮助页面以获得进一步的解释。
> comb <- cbind(ex1,ex2)
> names(comb) <- make.unique(names(comb))
> comb[sort(names(comb))]
a a.1 b b.1 c c.1
1 1 12 2 23 9 100
2 2 13 3 24 10 101
3 3 14 4 25 11 102
4 4 15 5 26 12 103
5 5 16 6 27 13 104
我希望合并两个具有相同长度和列名的数据框,这样我就可以让具有相同名称的列的值彼此相邻。
一个简单的例子
ex1<-data.frame( c(1:5), c(2:6), c(9:13) )
ex2<-data.frame( c(12:16), c(23:27), c(100:104) )
colnames(ex1)=c("a","b","c")
colnames(ex2)=c("a","b","c")
这会给
> ex1
a b c
1 1 2 9
2 2 3 10
3 3 4 11
4 4 5 12
5 5 6 13
> ex2
a b c
1 12 23 100
2 13 24 101
3 14 25 102
4 15 26 103
5 16 27 104
我想要的是:
> comb_ex
a a b b c c
1 1 12 2 23 9 100
2 2 13 3 24 10 101
3 3 14 4 25 11 102
4 4 15 5 26 12 103
5 5 16 6 27 13 104
此外,合并数据框后,如何重命名列,保留其原始名称,但添加索引以便识别这些值来自哪个数据框?
> comb_ex
a1 a2 b1 b2 c1 c2
1 1 12 2 23 9 100
2 2 13 3 24 10 101
3 3 14 4 25 11 102
4 4 15 5 26 12 103
5 5 16 6 27 13 104
这似乎不言自明。查看 ?cbind.data.frame
、?make.unique
、?'names<-'
和 ?"["
的帮助页面以获得进一步的解释。
> comb <- cbind(ex1,ex2)
> names(comb) <- make.unique(names(comb))
> comb[sort(names(comb))]
a a.1 b b.1 c c.1
1 1 12 2 23 9 100
2 2 13 3 24 10 101
3 3 14 4 25 11 102
4 4 15 5 26 12 103
5 5 16 6 27 13 104