R 使用列的值将数据表中的数据添加到另一个表中

R 使用列的值将数据表中的数据添加到另一个表中,r,dataframe,data.table,dplyr,apply,R,Dataframe,Data.table,Dplyr,Apply,我知道这个问题令人困惑,但我希望这个例子能让问题变得简单 我有两张桌子: x y 1 23 2 34 3 76 4 31 & 我需要根据x值添加y列。我可以用循环来做,但我不想。如果解决方案使用base,dplyr,data.table函数会更好,因为我最熟悉这些函数,我也可以使用apply函数系列。输出应如下所示: x y 1 101 2 34 3 127 4 31 5 54 基本思想是将两个数据集组合起来,按x分组,并用s

我知道这个问题令人困惑,但我希望这个例子能让问题变得简单

我有两张桌子:

x    y
1    23
2    34
3    76
4    31
&

我需要根据x值添加y列。我可以用循环来做,但我不想。如果解决方案使用
base
dplyr
data.table
函数会更好,因为我最熟悉这些函数,我也可以使用
apply
函数系列。输出应如下所示:

x    y
1    101
2    34
3    127
4    31
5    54

基本思想是将两个数据集组合起来,按
x
分组,并用
sum
y
进行汇总,有两种方法:

数据表

rbind(dtt1, dtt2)[, .(y = sum(y)), by = x]

#    x   y
# 1: 1 101
# 2: 2  34
# 3: 3 127
# 4: 4  31
# 5: 5  54
基本R
聚合

aggregate(y ~ x, rbind(dtt1, dtt2), FUN = sum)
dplyr

rbind(dtt1, dtt2) %>% group_by(x) %>% summarize(y = sum(y))

数据:

library(data.table)

dtt1 <- fread('x    y
1    23
2    34
3    76
4    31')

dtt2 <- fread('x    y
1    78
3    51
5    54')
库(data.table)

dtt1基本思想是结合两个数据集,按
x
分组,并用
sum
y
进行汇总,有几种方法可以做到:

数据表

rbind(dtt1, dtt2)[, .(y = sum(y)), by = x]

#    x   y
# 1: 1 101
# 2: 2  34
# 3: 3 127
# 4: 4  31
# 5: 5  54
基本R
聚合

aggregate(y ~ x, rbind(dtt1, dtt2), FUN = sum)
dplyr

rbind(dtt1, dtt2) %>% group_by(x) %>% summarize(y = sum(y))

数据:

library(data.table)

dtt1 <- fread('x    y
1    23
2    34
3    76
4    31')

dtt2 <- fread('x    y
1    78
3    51
5    54')
库(data.table)

dtt1必须按2列进行分组,因此无法工作。但我通过对你的方法稍加修改来规避它。所以,这真的很有帮助。谢谢。必须按2列进行分组,所以,它不起作用。但我通过对你的方法稍加修改来规避它。所以,这真的很有帮助。非常感谢。