我有一些数据框,如果它们的前两列相同,我想合并它们,并添加相应的第三列。
例如,我有三个数据框,如下所示:
> dump1
a b c
q 12 2
w 23 3
e 34 4
> dump2
a b c
q 12 1
w 23 1
s 3 1
> dump3
a b c
q 2 6
w 23 7
s 3 8
d 2 9
现在,我想获取合并的数据框:
> dump5
a b c
d 2 9
q 2 6
s 3 9
q 12 3
w 23 11
e 34 4
数据量很大,所以我想有一个快速的方法。
怎么做?有人知道吗?
提前欣赏一下。
谢谢。
我们将数据集放在list
, rbind
它与rbindlist
from data.table
,按“a”和“b”分组,得到sum
of 'c'
library(data.table)
rbindlist(list(dump1, dump2, dump3))[, .(c = sum(c)), .(a, b)]
如果有许多对象名称开头的数据集dump
后面是在全局环境中创建的数字,我们可以使用而不是单独指定对象名称ls
with pattern
获取对象名称,然后使用值mget
in a list
,
rbindlist(mget(ls(pattern = "dump\\d+")))[, .(c= sum(c)), .(a, b)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)