Już szukałem kilku przykładów, ale nie znalazłem żadnych filtrowanych wartości włączonych & ich dat.Ramka danych spread() na podstawie identyfikatora i wartość w innej kolumnie
Date <-c('3/13/2017 6:21', '3/20/2017 6:28','3/13/2017 6:22','3/20/2017 6:28',' 3/13/2017 6:23','3/20/2017 6:28','3/13/2017 6:24',' 3/20/2017 6:28', ' 3/24/2017 6:28')
Enabled_value<-c(0,1,0,1,0,1,0,1,0)
Helper<-c('39RTU1','39RTU1','39RTU2','39RTU2','39RTU2','39RTU3','39RTU3','39RTU4','39RTU4', '39RTU4')
wyglądać:
Helper Date(Enabled Value =0) Date (Enabled Value =1)
39RTU1 3/13/2017 6:20 3/20/2017 6:28
39RTU2 3/13/2017 6:21 3/20/2017 6:28
39RTU3 3/13/2017 6:22 3/20/2017 6:28
39RTU4 3/13/2017 6:24 3/20/2017 6:28
39RTU4 3/24/2017 6:28
Jak widać, mam sygnatury czasowe dla każdej obserwacji - każdy wiersz powinien być instancją (czyli przejście od Enabled_value od 0 do 1, a jeżeli ostatnia Enabled_value dla jednostki = 0, nie powinno być nową linię (patrz 39RTU4 poniżej).
już wykonał rozległe prace redukujący ten zestaw danych (od 500K do 2k wiersze).
Próbuję użyć tidyr
i dplyr
, ale mój spread
nadal utrzymuje błędy.
> sorted_data1<-spread(sorted_data,Enabled_Value,Helper)
Error: Duplicate identifiers for rows (1340, 1342)
Myślę, że to pytanie jest związane z https://stackoverflow.com/questions/47043098/transpose-columns-group-by-time-and-customer-id – markdly