按组分类的计数
Counts of category by group
我的数据中有一个变量是分类变量。我想按组计算每个类别的计数。我的数据具有以下结构:
dt <- data.table("fact"=c(2,2,1,3,3,2,3,3,3,3,2,2,1,3,3,2,3,3,3,3,2,2,1,3,3,2,3,3,3,3), "month"=rep(1:5, 6), "id"=c(rep("a", 15), rep("b", 15)))
运行后数据应该如下所示:
dt1 <- data.table("id" = c(rep("a", 5), rep("b", 5)), "month" = rep(1:5,2),
"fact1" = c(0,0,2,0,0,0,0,1,0,0),
"fact2" = c(3,2,0,0,0,3,1,0,0,0),
"fact3" = c(0,1,1,3,3,0,2,2,3,3))
请注意,fact1、fact2、fact3 是分类变量 fact 中的水平。
我创建了一个新的 character-vector 列,方法是将 "fact" 粘贴到事实列中的值,然后转换为宽格式:
library(data.table)
dt <- data.table("fact"=c(2,2,1,3,3,2,3,3,3,3,2,2,1,3,3,2,3,3,3,3,2,2,1,3,3,2,3,3,3,3), "month"=rep(1:5, 6), "id"=c(rep("a", 15), rep("b", 15)))
dt[, name := paste("fact", fact, sep="")]
dcast(dt, id+month~name, value.var="name")
产量
id month fact1 fact2 fact3
1: a 1 0 3 0
2: a 2 0 2 1
3: a 3 2 0 1
4: a 4 0 0 3
5: a 5 0 0 3
6: b 1 0 3 0
7: b 2 0 1 2
8: b 3 1 0 2
9: b 4 0 0 3
10: b 5 0 0 3
我的数据中有一个变量是分类变量。我想按组计算每个类别的计数。我的数据具有以下结构:
dt <- data.table("fact"=c(2,2,1,3,3,2,3,3,3,3,2,2,1,3,3,2,3,3,3,3,2,2,1,3,3,2,3,3,3,3), "month"=rep(1:5, 6), "id"=c(rep("a", 15), rep("b", 15)))
运行后数据应该如下所示:
dt1 <- data.table("id" = c(rep("a", 5), rep("b", 5)), "month" = rep(1:5,2),
"fact1" = c(0,0,2,0,0,0,0,1,0,0),
"fact2" = c(3,2,0,0,0,3,1,0,0,0),
"fact3" = c(0,1,1,3,3,0,2,2,3,3))
请注意,fact1、fact2、fact3 是分类变量 fact 中的水平。
我创建了一个新的 character-vector 列,方法是将 "fact" 粘贴到事实列中的值,然后转换为宽格式:
library(data.table)
dt <- data.table("fact"=c(2,2,1,3,3,2,3,3,3,3,2,2,1,3,3,2,3,3,3,3,2,2,1,3,3,2,3,3,3,3), "month"=rep(1:5, 6), "id"=c(rep("a", 15), rep("b", 15)))
dt[, name := paste("fact", fact, sep="")]
dcast(dt, id+month~name, value.var="name")
产量
id month fact1 fact2 fact3
1: a 1 0 3 0
2: a 2 0 2 1
3: a 3 2 0 1
4: a 4 0 0 3
5: a 5 0 0 3
6: b 1 0 3 0
7: b 2 0 1 2
8: b 3 1 0 2
9: b 4 0 0 3
10: b 5 0 0 3