作者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://www.ptt.cc/bbs/R_Language/M.1477114200.A.690.html
→ celestialgod: bb=aaa[,count:=.N,by='id'] 然後再merge回去 10/22 13:39
→ celestialgod: merge(aaa,bb,by='id') 10/22 13:41
→ jasonfun44: 是否能第一筆重複資料count=1第二筆為count=2??不過 10/22 14:08
→ jasonfun44: 謝謝大大 10/22 14:08
推 celestialgod: by ID cumsum duplicated id就好 10/22 14:09
→ celestialgod: aaa[,count:=cumsum(duplicate(id)),by='id'] 10/22 14:13
→ celestialgod: 推文都未測試,如有typing,解讀不出來再推文吧 10/22 14:14
推 celestialgod: 第一行要改成.(count=.N)才對 10/22 14:14
→ jasonfun44: aaa[,count:=cumsum(duplicated(id)),by="id"]跑不出 10/22 22:31