[問題] 計算重複次數

看板R_Language作者 (kk123)時間9年前 (2016/10/22 13:30), 編輯推噓2(207)
留言9則, 2人參與, 最新討論串1/2 (看更多)
問題 程式諮詢: 想計算每筆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

10/22 13:39, , 1F
bb=aaa[,count:=.N,by='id'] 然後再merge回去
10/22 13:39, 1F

10/22 13:41, , 2F
merge(aaa,bb,by='id')
10/22 13:41, 2F

10/22 14:08, , 3F
是否能第一筆重複資料count=1第二筆為count=2??不過
10/22 14:08, 3F

10/22 14:08, , 4F
謝謝大大
10/22 14:08, 4F

10/22 14:09, , 5F
by ID cumsum duplicated id就好
10/22 14:09, 5F

10/22 14:13, , 6F
aaa[,count:=cumsum(duplicate(id)),by='id']
10/22 14:13, 6F

10/22 14:14, , 7F
推文都未測試,如有typing,解讀不出來再推文吧
10/22 14:14, 7F

10/22 14:14, , 8F
第一行要改成.(count=.N)才對
10/22 14:14, 8F

10/22 22:31, , 9F
aaa[,count:=cumsum(duplicated(id)),by="id"]跑不出
10/22 22:31, 9F
文章代碼(AID): #1O2lbOQG (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1O2lbOQG (R_Language)