首页 文章

合并数据集列时,它们具有不同的行数

提问于
浏览
1

我需要将两个不同的data.frames彼此“合并”并且具有相同的唯一标识符(ID)并且我想保留较大data.frame的行数 .

更重要的是,我希望data.frame.1(较大的一个)中变量x的值对每个唯一ID求和,这样在data.frame.3(合并数据集)中,变量x的每个观察值都是最初在data.frame.1中找到的具有相同唯一标识符的观察结果 .

基本上,我希望我的合并数据集具有我的较小数据集(data.frame.2)-i.e的行维度 . 相同的观察数量 - 但我希望将较大的df(data.frame.1)中的列合并到较小的df(data.frame.2)的列中,并且我希望其值如上所述聚合(sum) .

我希望这很清楚,所以下面的图表更清楚:总共有三个唯一ID(a,b,c),但在data.frame.1中,这些重复-i希望在合并发生时将这些重复值相加 .

ID x data.frame.1
a 1 
a 8 
a 10 
b 2 
b 1 
c 4

ID y data.frame.2
a 3 
b 7 
c 9

ID y x data.frame.3
a 3 19
b 7 3
c 9 4

1 回答

  • 1
    data.frame1 <- data.frame(ID = c(rep("a",3), rep("b",2), "c"),
                             x = c(1,8,10,2,1,4))
    data.frame2 <- data.frame(ID = c("a", "b", "c"),
                             y = c(3, 7, 9))
    
    data.frame1 <- aggregate(x ~ ID, data.frame1, sum)
    data.frame3 <- merge(data.frame2, data.frame1, by = "ID")
    

相关问题