合并两个数据帧,依次获取每个数据帧的交替行 [英] Merge two data frames to get alternate rows of each data frame in sequence

查看:52
本文介绍了合并两个数据帧,依次获取每个数据帧的交替行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的 data.frame DATA

My data.frame DATA is

  k    l   g
1 A 2004  12
2 B 2004 3.4
3 C 2004 4.5

另一个 data.frame DATA2

Another data.frame DATA2 is

  i    d   t
1 A 2012  22
2 B 2012 4.8
3 C 2012 5.6

我想得到

1 A 2004  12
1 A 2012  22
2 B 2004 3.4
2 B 2012 4.8
3 C 2004 4.5
3 C 2012 5.6

推荐答案

我们可以试试 data.table 中的 rbindlist.将数据集放在 list 中,rbind 将它们与 rbindlistorder 放在第一列.

We can try rbindlist from data.table. Place the datasets in a list, rbind them with rbindlist and order by the first column.

library(data.table)
rbindlist(list(df1, df2))[order(k)]
#   k    l    g
#1: A 2004 12.0
#2: A 2012 22.0
#3: B 2004  3.4
#4: B 2012  4.8
#5: C 2004  4.5
#6: C 2012  5.6

<小时>

或者使用 dplyr

library(dplyr)
bind_rows(df1, setNames(df2, names(df1))) %>% 
           arrange(k)

注意:我使用 df1df2 代替 DATADATA2 作为对象名称更容易打字.

NOTE: I used df1 and df2 in place of DATA and DATA2 as object names as it is easier to type.

这篇关于合并两个数据帧,依次获取每个数据帧的交替行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆