library(data.table)
dt <- data.table(read.table(text="
01-01-19,A,X
01-01-19,A,Y
01-01-19,A,Z
02-01-19,A,X
02-01-19,A,Y
02-01-19,A,Z
02-01-19,A,W
01-01-19,B,X
01-01-19,B,Y
01-01-19,B,Z
02-01-19,B,X
02-01-19,B,X
02-01-19,B,Z
02-01-19,B,V
",sep=",",strip.white = TRUE))
setnames(dt,c("date","group","value"))
Одним из решений было бы найти уникальные значения по группам. Затем суммируйте уникальные значения по группе и дате.
## > dt[,dup:=!duplicated(value),.(group)][,sum(dup),.(group,date)]
## group date V1
## 1: A 01-01-19 3
## 2: A 02-01-19 1
## 3: B 01-01-19 3
## 4: B 02-01-19 1