我有以下数据框:
一些背景知识:
VAR1
是唯一代码,VAR2
是人员ID,FREQ
是总计数。
例如,第1个人(P1
)在代码ABCD
中出现29次,在代码EFGH
中也出现98次。我想要做的是,让它看起来像这样:
基本上,我只想要总数,所以Person 1使用了127次特定代码(VAR1
)。 Person 2使用了14次唯一代码
我不确定如何让它发挥作用,因为我只是从R开始。
答案 0 :(得分:3)
在基数R中(其中df
是您的数据框):
aggregate(.~var2, df, sum)[,c(1,3)]
# var2 freq
#1 p1 127
#2 p2 14
#3 p3 135
答案 1 :(得分:2)
使用dplyr我们可以做到这一点。假设df是数据框的名称:
library("dplyr")
df %>% group_by(VAR2) %>% summarise(count = sum(VAR3))
答案 2 :(得分:0)
data.table
解决方案:
library(data.table)
dt[, list(freq = sum(Freq)), by = Var2]
# Var2 freq
#1: P1 127
#2: P2 14
#3: P3 135
数据:强>
dt <- fread("Var1 Var2 Freq
ABCD P1 29
ABCD P2 2
ABCD P3 12
EFGH P1 98
EFGH P2 12
EFGH P3 123")