R 使用2个数据帧进行计算

R 使用2个数据帧进行计算,r,R,我有两个表,每个表有两列: ID Topic 123 A 124 B 125 A 126 C 以及: ID Freq 123 20 124 30 125 10 123 50 结果应该是每个主题的相关频率总和,如下所示: Topic Total A 80 B 30 C 0 如何使用R(使用RStudio)

我有两个表,每个表有两列:

ID     Topic  
123     A  
124     B  
125     A  
126     C    
以及:

ID     Freq  
123     20  
124     30   
125     10  
123     50  
结果应该是每个主题的相关频率总和,如下所示:

Topic   Total  
  A      80  
  B      30  
  C       0  
如何使用R(使用RStudio)实现这一点?同样,在基本R中,表格非常长~50k行

df3 <- merge(df1,df2,all.x=TRUE)
df3[is.na(df3)] <- 0
aggregate(Freq ~ Topic,df3,sum)
#   Topic Freq
# 1     A   80
# 2     B   30
# 3     C    0

df3tidyverse

library(dplyr)
df1 %>%
  left_join(df2, by = "ID") %>%
  group_by(Topic) %>%
  summarize(Total = sum(Freq, na.rm = TRUE))

你试过什么?50k不再是一个大表,因为现在RAM要大得多。和@Sotos,您也可以查看
library(dplyr)
df1 %>%
  left_join(df2, by = "ID") %>%
  group_by(Topic) %>%
  summarize(Total = sum(Freq, na.rm = TRUE))