回复 第31楼 的 xvweirong:转换成日期并没有必要,从RAW data的角度来讲,将其视作字符串用strsplit的办法应该是更加直观的。后面的问题你可以想成两个关键字,AND类型的选择,于是还是可以用table, 不过改变变量为paste(var1,var2)这种形式的东西罢了。
<br />
data<-read.csv( 'qq.csv',header=T) ;<br />
data$time<-as.character( data$time);<br />
data$id<-as.character( data$id)<br />
tmpstr<-strsplit( data$time,split=' ');<br />
tmpstr<-do.call( rbind,tmpstr);<br />
data$day <- tmpstr[ ,1]<br />
data$hour <- tmpstr[ ,2]<br />
record1<-data$id ;<br />
record2<-paste( data$id,data$day);<br />
table( record1)[sort( as.numeric( table( record1) ) ,decreasing=T,index=T)$ix[ 1:10] ]<br />
table( record2)[sort( as.numeric( table( record2) ) ,decreasing=T,index=T)$ix[ 1:10] ]<br />
当然完全有改进的余地,因为吧,做paste的办法是在是比较粗暴的编程方;很多临时变量不那样写最好;只求前十个不比所有的都排序。
</p>