作者jasonfun44 (kk123)
看板R_Language
标题[问题] 计算重复次数
时间Sat Oct 22 13:29:57 2016
问题
程式谘询:
想计算每笔id重覆次数
[软体熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
aaa为data.table
我想对其id做排序後,再对日期做排序
然後计算每笔id重复次数给入新增count栏位
aaa<-Rawdata[order(id,name,date),]
for(i in 1:100){
if( aaa[i,id]==aaa[i+1,id] & aaa[i,name]==aaa[i+1,name] ) {
aaa[c(i),count]<=z
z=z+c(1)
}
else( aaa[i,id]!=aaa[i+1,id] | aaa[i,name]!=aaa[i+1,name] )
{
aaa[c(i),count]<=z
aaa[c(i+1),count]<=c(1)
z<-1
}
}
不知道以上这段程式码要如何改,恳请各位大大帮我检查位在哪,谢谢
[环境叙述]:
Win10 r3.31
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.243.104.31
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1477114200.A.690.html
1F:→ celestialgod: bb=aaa[,count:=.N,by='id'] 然後再merge回去 10/22 13:39
2F:→ celestialgod: merge(aaa,bb,by='id') 10/22 13:41
3F:→ jasonfun44: 是否能第一笔重复资料count=1第二笔为count=2??不过 10/22 14:08
4F:→ jasonfun44: 谢谢大大 10/22 14:08
5F:推 celestialgod: by ID cumsum duplicated id就好 10/22 14:09
6F:→ celestialgod: aaa[,count:=cumsum(duplicate(id)),by='id'] 10/22 14:13
7F:→ celestialgod: 推文都未测试,如有typing,解读不出来再推文吧 10/22 14:14
8F:推 celestialgod: 第一行要改成.(count=.N)才对 10/22 14:14
9F:→ jasonfun44: aaa[,count:=cumsum(duplicated(id)),by="id"]跑不出 10/22 22:31