2017-08-06 45 views
-1

一個數據幀我有一個data.table具有以下特徵壓扁內部的data.table

> print(wb_failures_summary) 
      V1  codes  enodeb   IMSI 
1:  BACT <data.frame> <data.frame> <data.frame> 
2: BREERAB <data.frame> <data.frame> <data.frame> 
3:  DETACH <data.frame> <data.frame> <data.frame> 
4:  ATTACH <data.frame> <data.frame> <data.frame> 
5: MMPAGEHIGH <data.frame> <data.frame> <data.frame> 
6:  SVCREQ <data.frame> <data.frame> <data.frame> 
7:   HO <data.frame> <data.frame> <data.frame> 
8:  BHO <data.frame> <data.frame> <data.frame> 
9: PAGEMED <data.frame> <data.frame> <data.frame> 
10:   NA <data.frame> <data.frame> <data.frame> 
11:  TAU <data.frame> <data.frame> <data.frame> 
12: PAGELCS <data.frame> <data.frame> <data.frame> 
13:  BMOD <data.frame> <data.frame> <data.frame> 
14:  BPRSV <data.frame> <data.frame> <data.frame> 

在data.table對象的data.frame變量如下

> print(wb_failures_summary[1]$codes) 
[[1]] 
      x Freq 
36 006B000000 437962 
7 000906001A 8117 
24 0023000000 992 
22 002006001A 872 
10 0009060023 819 
35 0069000000 450 
1 0005000000 433 
14 000A05002C 319 
33 0057000000 178 
25 0024000000 167 

> 

我需要的代碼,enodeb,imsi看起來像命名清單如下代碼我希望他們出現如下

c(「006B000000」=「437962」,「000906001A」=「8117」....)

我想我需要扁平化data.frame適時這樣做......無法計算出。 指針會有很大的幫助。

回答

0

finally..did管理解決...... 一個簡單的粘貼是什麼必要...... 最終代碼

frequency_of_data <- function(x){ 
    t<-table(x) 
    t<-as.data.frame(t,stringAsFactors=FALSE) 
    t<-t[order(-t$Freq),] 
    t<-t[1:10,] 
    **t1<-paste(t$x,"=",t$Freq)** 
    t1 
} 
wb_failures_summary <- wb_failures_errorcode[,.(codes=.(frequency_of_data(code)),enodeb=.(frequency_of_data(V16)),IMSI=.(frequency_of_data(V2)),APN=.(frequency_of_data(V58)),QCI=.(frequency_of_data(V57))),by=V1] 

---最終的O/P ----

> wb_failures_summary 
      V1                           codes 
1:  BACT  006B000000 = 437962,000906001A = 8117,0023000000 = 992,002006001A = 872,0009060023 = 819,0069000000 = 450, 
2: BREERAB 002C000000 = 679672,0057000000 = 98492,000906001A = 61815,0024000000 = 9614,00090A0004 = 8426,0023000000 = 5514, 
3:  DETACH    0018000000 = 5130,004C000000 = 514,004F000000 = 73,003C000000 = 36,001F000000 = 4,0024000000 = 1, 
4:  ATTACH  008006001A = 5328,0036000000 = 4927,0018000000 = 3689,007D000000 = 1139,004C06001A = 399,0038000000 = 381, 
5: MMPAGEHIGH                = 100088,NA = NA,NA = NA,NA = NA,NA = NA,NA = NA, 
6:  SVCREQ 008006001A = 35198,00BE000000 = 8893,00800A0004 = 4523,00BD000000 = 3958,003E000000 = 1626,004F000000 = 1200, 
7:   HO   0032000000 = 4458,0050000000 = 742,004C060006 = 448,004F000000 = 347,007C000000 = 166,000D000000 = 41, 
8:  BHO                 = 3046,NA = NA,NA = NA,NA = NA,NA = NA,NA = NA, 
9: PAGEMED                 = 332,NA = NA,NA = NA,NA = NA,NA = NA,NA = NA, 
10:   NA                = 318082,NA = NA,NA = NA,NA = NA,NA = NA,NA = NA, 
11:  TAU  005A000000 = 11075,003E000000 = 1998,004D000000 = 1631,0038000000 = 903,0019000000 = 253,004F000000 = 39, 
12: PAGELCS                 = 593,NA = NA,NA = NA,NA = NA,NA = NA,NA = NA, 
13:  BMOD     000906001A = 41,000A05002C = 35,0020060000 = 22,0009060023 = 13,0005000000 = 5,0027000000 = 5, 
14:  BPRSV               0027000000 = 23,NA = NA,NA = NA,NA = NA,NA = NA,NA = NA, 

rajib