作者celestialgod (天)
看板R_Language
标题Re: [问题] 计算重复次数
时间Sat Oct 22 22:42:14 2016
※ 引述《jasonfun44 (kk123)》之铭言:
: 问题
: 程式谘询:
: 想计算每笔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
library(data.table)
set.seed(11)
aaa <- data.table(id = rep(1:5, times = sample(1:10, 5, TRUE)))
aaa[,id2 := id][ , count := cumsum(duplicated(id2))+1L, by=.(id)][,id2 :=NULL]
print(aaa)
# id count
# 1: 1 1
# 2: 1 2
# 3: 1 3
# 4: 2 1
# 5: 3 1
# 6: 3 2
# 7: 3 3
# 8: 3 4
# 9: 3 5
# 10: 3 6
# 11: 4 1
# 12: 5 1
--
R资料整理套件系列文:
magrittr #1LhSWhpH (R_Language) https://goo.gl/OBto1x
data.table #1LhW7Tvj (R_Language) https://goo.gl/QFtp17
dplyr(上.下) #1LhpJCfB,#1Lhw8b-s (R_Language) https://goo.gl/GcfNoP
tidyr #1Liqls1R (R_Language) https://goo.gl/pcq5nq
pipeR #1NXESRm5 (R_Language) https://goo.gl/cDIzTh
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.235.91.146
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1477147337.A.5D1.html
1F:推 jasonfun44: 感激不尽!!!! 10/22 23:05
2F:推 jasonfun44: 但要改成+1L 10/22 23:15
※ 编辑: celestialgod (36.235.91.146), 10/22/2016 23:22:49