2017-06-28 14 views
0

Ich brauche ein Diagramm, das die durchschnittliche Lösungszeit für eine Reihe von Support-Anfragen zeigt. Ich habe einen Datenrahmen mit allen Anfragen, jede Zeile ist eine andere Anfrage, und jede Spalte stellt ein anderes Feld wie Monat, Priorität, Gruppe, Lösungszeit und so weiter ...Wie verwendet man die RowMeans-Funktion, die mit agrgregate kombiniert

Von dieser Tabelle möchte ich Ermitteln Sie die durchschnittliche Lösungszeit für jeden Monat. Ich habe verschiedene Wege versucht, aber bisher war ich nicht in der Lage. Ich denke, ich bin jetzt sehr nah dran. Dies ist mein Code:

df_tresolucion <- setNames(aggregate(tabla_tiempos$Ticket,by=list(tabla_tiempos$Metrica),FUN = rowMeans(tabla_tiempos[,10,drop=FALSE])),c("Metrica","Promedio")) 

tabla_tiempos ist der Datenrahmen die ich erwähnt habe, bevor alle Support-Anfragen enthalten:

Ticket <- c('119237','119239','120598','120600','120612', '120615') 
Metrica <- c('apr 2017','may 2017', 'may 2017','may 2017','jun 2017','jun 2017') 
Pais <- c('ESP','ESP','ESP','ESP','ESP','ESP')Estado <- c('Closed', 'Closed', 'Closed', 'Closed', 'Closed', 'Closed') 
Escalado <- c('CEDEX', 'CEDEX', 'TAC','CEDEX','CEDEX','TAC') 
Vendor <- c('Cisco','Cisco','Cisco','Juniper','Cisco','Cisco') 
Familia <- c('C7600','C7600','MX960','C7600','C7600','MX960') 
Severidad <- c('Minor','Minor','Major','Minor','Minor','Major') 
SLA <- c('Dentro de SLA','Dentro de SLA','Dentro de SLA','Dentro de SLA','Dentro de SLA','Dentro de SLA') 
tresolucion <- c ('1.73','2.30','26.97','1.73','2.30','26.97') 
tabla_tiempos <- data.frame(Ticket,Metrica,Pais,Estado,Vendor,Familia,Severidad,SLA,tresolucion) 

$ Ticket ist ein einzigartiges Feld für jede Anforderung und $ Metrica stellt den Monat dar, in dem die Anfrage geöffnet wurde. Die 10. Spalte im Datenrahmen tabla_tiempos enthält die Lösungszeit. Ich verwendete den Parameter DROP = FALSE, um die Maße zu behalten, damit ich die Funktion RowMeans anwenden kann.

Ich erhalte diesen Fehler, die ich nicht wirklich verstehen, was bedeutet, leider:

Warning: Error in match.fun: 'rowMeans(tabla_tiempos[, 10, drop = FALSE])' is not a function, character or symbol 

So wie ich für jeden Monat für Monat und berechnen Sie die mittlere Auflösungszeit aggregieren sagte, bevor ich möchte und später um einen weiteren Datenrahmen zu erstellen (dies wäre df_tresolucion) mit all diesen Informationen: 2 Spalten (Monat und mittlere Zeit) und eine Zeile für jeden Monat.

Weiß jemand, wie ich das tun könnte? Danke im Voraus!

+2

Bitte fügen Sie ein reproduzierbares Beispiel. https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

+0

@PLapointe, ich habe gerade den Beitrag bearbeitet. –

Antwort

0

So geht das mit dplyr. Beachten Sie, dass ich die Faktoren aus Ihrem data.frame entfernt habe und die Tresolucion zu numeric gezwungen habe.

library(dplyr) 
tabla_tiempos%>% 
    group_by(Metrica)%>% 
    summarise(tresolucion=mean(tresolucion,na.rm=TRUE)) 

    Metrica tresolucion 
    <chr>  <dbl> 
1 apr 2017  1.73000 
2 jun 2017 14.63500 
3 may 2017 10.33333 

Daten

Ticket <- c('119237','119239','120598','120600','120612', '120615') 
Metrica <- c('apr 2017','may 2017', 'may 2017','may 2017','jun 2017','jun 2017') 
Pais <- c('ESP','ESP','ESP','ESP','ESP','ESP') 
Estado <- c('Closed', 'Closed', 'Closed', 'Closed', 'Closed', 'Closed') 
Escalado <- c('CEDEX', 'CEDEX', 'TAC','CEDEX','CEDEX','TAC') 
Vendor <- c('Cisco','Cisco','Cisco','Juniper','Cisco','Cisco') 
Familia <- c('C7600','C7600','MX960','C7600','C7600','MX960') 
Severidad <- c('Minor','Minor','Major','Minor','Minor','Major') 
SLA <- c('Dentro de SLA','Dentro de SLA','Dentro de SLA','Dentro de SLA','Dentro de SLA','Dentro de SLA') 
tresolucion <- as.numeric(c('1.73','2.30','26.97','1.73','2.30','26.97')) 
tabla_tiempos <- data.frame(Ticket,Metrica,Pais,Estado,Vendor,Familia,Severidad,SLA,tresolucion,stringsAsFactors = FALSE) 
+0

Vielen Dank @PLapointe –

Verwandte Themen