I einen Datenrahmen aufweisen, wie folgt:Binning, Daten in r Gruppierungswerte unter Verwendung eines spezifischen Bereichs withing ein Ereignis zu bestimmen, oder für Überlebensanalyse verändern
df <- data.frame(as.date=c("14/06/2016","15/06/2016","16/06/2016","17/06/2016","18/06/2016","19/06/2016","20/06/2016","21/06/2016","22/06/2016","23/06/2016",
"24/06/2016","04/07/2016","05/07/2016","06/07/2016","07/07/2016","08/07/2016","09/07/2016","10/07/2016","11/07/2016","12/07/2016",
"13/07/2016","14/07/2016","15/07/2016","17/07/2016","18/07/2016","19/07/2016","20/07/2016","21/07/2016","22/07/2016","01/08/2016",
"02/08/2016","03/08/2016","04/08/2016","05/08/2016","06/08/2016","07/08/2016","08/08/2016","09/08/2016","10/08/2016","11/08/2016",
"12/08/2016","13/08/2016","14/08/2016","15/08/2016","16/08/2016","17/08/2016","18/08/2016","19/08/2016","20/08/2016","21/08/2016",
"22/08/2016","23/08/2016","24/08/2016","25/08/2016","26/08/2016","27/08/2016","28/08/2016","29/08/2016","30/08/2016","31/08/2016",
"01/09/2016","02/09/2016","03/09/2016","04/09/2016","05/09/2016","06/09/2016","07/09/2016","08/09/2016","09/09/2016","10/09/2016",
"11/09/2016","12/09/2016","13/09/2016","14/09/2016","15/09/2016","16/09/2016","17/09/2016","18/09/2016","19/09/2016","20/09/2016"),
wear=c("0","55","0","0","0","0","8","8","15","25","30","37","43","49","52","52","55","57","57","61","67","69","2","2","7",
"10","13","14","16","16","19","22","22","24","25","26","29","29","33","34","34","36","38","44","45","48","50","55",
"56","58","0","4","0","4","4","6","9","9","12","14","16","17","25","25","33","36","44","46","48","52","55","59",
"8","9","9","12","24","33","36","44"))
der Daten ist ein Beispiel für Verschleißrate auf einem Typ von Metall auf einer Maschine, es steigt mit der Zeit fällt sie auf 0, ein Ereignis oder eine Änderung,
aber das Problem, das ich habe, ist, dass der Verschleiß Wert nicht auf 0 abfallen, wie Sie aus der Daten, gibt es 2 Variablen
as.date = Datum über Zeit, Verschleiß = Verschleiß von Metall auf einem Teil der Zeit
RANGE zwischen Änderungen sind: 55-0, 60-2 , 58-0, 59-8
, wenn es aus einem großen Tropfen Nummer 0 ist es leicht zu Code, ich verwende den folgenden Code, zu ändern und neue Variablen namens der Status & id
{Creates 2 new columns status & id
prop.table(table(df$Status))
prop.table(table(df$Status),1) # creates new coulmn called status
df$Status <- 0# fills in column status with all zeros
df$Status[wear > -10 & wear == 0] <- 1 # fill in 1s when wear = 0
prop.table(table(df$Status))
prop.table(table(df$Status),1) # creates new coulmn called status
df$id <-1# fills in column status with '1's
for(i in 2:nrow(df)){
if(df$Status[i-1]==0){
df$id[i]=df$id[i-1]
}
else {
df$id[i]=df$id[i-1]+1
}
}
}
es einen Rückgang der Verschleißwerte auf 0 fangen funktioniert OK hinzuzufügen, aber wenn es isn‘ t, wie in den Datenbeispielen, die Verschleißabfälle von 55-0 stattfinden, 69-2, 58-0, 59-8, manchmal gibt es Fälle, in denen die Abnutzungswerte negativ sind, nicht sicher, ob dies richtig ist. Ich habe versucht, das Binning und die Gruppierung der Daten zu umgehen aber war erfolglos.
Dies ist ein Beispiel der Daten, der in der realen Datensatzes gibt es mehr als 100 Veranstaltungen, meist ein Verschleißwert Abfall auf 0, aber zwischen 10-20 Gelegenheiten entweder auf negative Werte fallen oder eine Werte < 10.
OK, bekommen, was Sie tun, aber manchmal kann der Verschleiß Wert so niedrig wie 45 und so hoch wie 78 nicht immer um 55 sein, wäre es besser, vielleicht 2 oder 3 Filter zu tun? nur darüber nachdenken, wie dies den Status ändern könnte –
Natürlich können Sie entscheiden, welche Arten von Filterstrategie am besten Ihren Bedürfnissen entsprechen können. – www