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列进行分组,所以,它不起作用。但我通过对你的方法稍加修改来规避它。所以,这真的很有帮助。非常感谢。