我有2个表,每个表有2列:
ID Topic
123 A
124 B
125 A
126 C
和:
ID Freq
123 20
124 30
125 10
123 50
结果应该是每个具有相关freq总和的主题,如下所示:
Topic Total
A 80
B 30
C 0
我如何用R(使用RStudio)得到这个,表格真的很长~50k行
答案 0 :(得分:1)
在基地R:
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
数据强>
df1 <- read.table(text="ID Topic
123 A
124 B
125 A
126 C",h=T,strin=F)
df2 <- read.table(text="ID Freq
123 20
124 30
125 10
123 50",h=T,strin=F)
答案 1 :(得分:1)
tidyverse
方法:
library(dplyr)
df1 %>%
left_join(df2, by = "ID") %>%
group_by(Topic) %>%
summarize(Total = sum(Freq, na.rm = TRUE))