这是一个示例数据集,用于说明我的问题:
example=data.frame(Group1=c(1,1,1,2,2,10,15,23),
Group2=c(100,100,150,200,234,456,465,710),
UniqueID=c('ABC67DF','ADC45BN','ADC45BN','ADC44BB','BBG40ML','CXD99QA','BBG40ML','VDF72PX'))
这是数据集的样子:
Group1 Group2 UniqueID
1 100 ABC67DF
1 100 ADC45BN
1 150 ADC45BN
2 200 ADC44BB
2 234 BBG40ML
10 456 CXD99QA
15 465 BBG40ML
23 710 VDF72PX
我想计算每个唯一ID的出现次数,并有一个像这样的数据集:
Group1 Group2 UniqueID Count
1 100 ABC67DF 1
1 100 ADC45BN 1
1 150 ADC45BN 2
2 200 ADC44BB 1
2 234 BBG40ML 1
10 456 CXD99QA 1
15 465 BBG40ML 2
23 710 VDF72PX 1
我尝试了以下代码:
library(plryr)
Count=count(data$UniqueID)
但是这只是压缩我的数据集以仅显示唯一的UniqueID。谁能帮助我获取所需的数据集?
答案 0 :(得分:0)
R基础解决方案
example$ones <- 1 # create a vector of 1's
example <- transform(example, Count = ave(ones, UniqueID, FUN=cumsum)) # get counts
example$ones <- NULL # delete vector of 1's previously created
example # check results
Group1 Group2 UniqueID Count
1 1 100 ABC67DF 1
2 1 100 ADC45BN 1
3 1 150 ADC45BN 2
4 2 200 ADC44BB 1
5 2 234 BBG40ML 1
6 10 456 CXD99QA 1
7 15 465 BBG40ML 2
8 23 710 VDF72PX 1