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也能很好地工作!非常感谢您的回答!