聚合并计算R中的唯一值

时间:2015-01-17 10:31:12

标签: r aggregate

我有一个车辆类型的数据集作为因素(11,12,13 =汽车类型)每种车辆类型我有一些单位ID(=特定车辆)我想要计算我有多少uniqe UnitId在每种车型中。 我试过了: aggregate(UnitId~VehicleType, test, unique)->res1

1 个答案:

答案 0 :(得分:1)

对于更新的问题,即“有没有办法找出UnitId是否出现在多个VehicleType中”

 with(test, names(rowSums(!!table(UnitId, VehicleType))>1))

根据原始问题(“按组计算唯一值”)从评论中复制/粘贴

aggregate(UnitId~VehicleType, test, function(x) length(unique(x)))

或者

with(test, colSums(!!table(UnitId, VehicleType)))

或者

library(data.table)
setDT(test)[, length(unique(UnitId)), VehicleType]

数据

set.seed(24)
test <- data.frame(VehicleType=sample(11:18,60, replace=TRUE), 
  UnitId=sample(1:10, 60, replace=TRUE))