R 添加具有匹配列名的频率值

R 添加具有匹配列名的频率值,r,dataframe,sum,R,Dataframe,Sum,我有以下数据框: library("dplyr") df %>% group_by(VAR2) %>% summarise(count = sum(VAR3)) aggregate(.~var2, df, sum)[,c(1,3)] # var2 freq #1 p1 127 #2 p2 14 #3 p3 135 一些背景: VAR1是唯一代码,VAR2是个人ID,FREQ是总计数 例如,人员1 P1在代码ABCD中出现29次,在代码EFGH中也出

我有以下数据框:

library("dplyr")    
df %>% group_by(VAR2) %>% summarise(count = sum(VAR3))
aggregate(.~var2, df, sum)[,c(1,3)]

#  var2 freq
#1   p1  127
#2   p2   14
#3   p3  135
一些背景:

VAR1是唯一代码,VAR2是个人ID,FREQ是总计数

例如,人员1 P1在代码ABCD中出现29次,在代码EFGH中也出现98次。我想做的是让它看起来像这样:

基本上,我只想要总数,所以person1已经使用了一个特定的代码VAR1 127次。人员2已使用唯一代码14次


我不确定如何让它工作,因为我只是从R开始。

使用dplyr我们可以做到这一点。假设df是数据帧的名称:

library("dplyr")    
df %>% group_by(VAR2) %>% summarise(count = sum(VAR3))
aggregate(.~var2, df, sum)[,c(1,3)]

#  var2 freq
#1   p1  127
#2   p2   14
#3   p3  135
在base R中,df是您的数据帧:

library("dplyr")    
df %>% group_by(VAR2) %>% summarise(count = sum(VAR3))
aggregate(.~var2, df, sum)[,c(1,3)]

#  var2 freq
#1   p1  127
#2   p2   14
#3   p3  135
数据表解决方案:

library(data.table)
dt[, list(freq = sum(Freq)), by = Var2]

#   Var2 freq
#1:   P1  127
#2:   P2   14
#3:   P3  135
数据:


这很好用,非常感谢!使用dplyr也能很好地工作!非常感谢您的回答!