Advertisement
Guest User

Untitled

a guest
Jul 25th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. library(RMySQL)
  2.  
  3. library(DBI)
  4.  
  5. #資料分散在兩個資料庫
  6. conn <- dbConnect(MySQL(), dbname = "stream", username = "streamusr" ,password = "00000000" , host = "140.120.55.97" , port = 3306)
  7. conn1 <- dbConnect(MySQL(), dbname = "topmso", username = "streamusr" ,password = "00000000" , host = "140.120.55.97" , port = 3306)
  8. dbSendQuery(conn,'set names utf8')
  9. dbSendQuery(conn1,'set names utf8')
  10.  
  11. datapart1<-dbGetQuery(conn, "SELECT * FROM `stream_view_temp`")
  12. datapart2<-dbGetQuery(conn1, "SELECT * FROM `stream_view_temp`")
  13.  
  14. #合併兩資料檔
  15. datawip<-datapart2[,-9]
  16. colnames(datawip)<-c("session_id","cust_no","create_time","destroy_time","ei_start_time","ei_end_time","ei_event_name","SD_SERVICE_NAME")
  17. finaldata<-rbind(datapart1,datawip)
  18.  
  19. #判定開始時間即結束時間
  20. start_time = as.POSIXct('2015-09-01 00:00:00',format = "%Y-%m-%d %H:%M:%S")
  21. end_time = as.POSIXct('2016-01-31 23:59:59',format = "%Y-%m-%d %H:%M:%S")
  22.  
  23. i=1
  24. #每半小時計算一次
  25. interval=1800
  26. #所希望收集資料
  27. freq<-cbind("時間","第1四分位數","中位數","第3四分位數")
  28. #迴圈用虛擬時間判斷
  29. sitime=start_time
  30. eitime=sitime+interval
  31. WIP1<-subset(finaldata,finaldata[,3]>=sitime)
  32.  
  33. while(sitime<=end_time){
  34. WIP2<-subset(WIP1,WIP1[,3]<=eitime)
  35. j=1
  36. g<-c(0)
  37. Frequency=nrow(WIP2)
  38. while(j<= Frequency){
  39. g<-cbind(g,as.numeric(strptime(WIP2[j,4], "%Y-%m-%d %H:%M:%S"))-as.numeric(strptime(WIP2[j,3], "%Y-%m-%d %H:%M:%S")))
  40. j=j+1}
  41.  
  42. x<-sort(g)
  43. q1 = quantile(x, 0.25)
  44. med = median(x)
  45. q3 = quantile(x, 0.75)
  46.  
  47. starttime<-strftime(sitime)
  48. h<-cbind(starttime,q1,med,q3)
  49. freq<-rbind(freq,h)
  50. sitime<-sitime+interval
  51. eitime<-eitime+interval
  52. if(sitime<=end_time)WIP1<-subset(finaldata,finaldata[,3]>=sitime)
  53. }
  54. freqtry<-freq[-1,]
  55. write.csv(freqtry,file="duration-2016ALLup.csv",fileEncoding = "big5")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement