Określ, kiedy kolumny wartości data.frame zmieniają i zwracają indeksy zmiany

Próbuję znaleźć sposób na określenie, kiedy zestaw kolumn zmienia wartość w pliku data.frame. Pozwólcie, że przejdę do sedna sprawy, rozważcie następujący przykład:

x<-data.frame(cnt=1:10, code=rep('ELEMENT 1',10), val0=rep(5,10), val1=rep(6,10),val2=rep(3,10))
x[4,]$val0=6
Kolumna cnt jest unikalnym identyfikatorem (może być datą lub kolumną czasu, dla uproszczenia jest to tutaj int)Kolumna kodu jest jak kod dla zestawu wierszy (wyobraź sobie kilka takich grup, ale z różnymi kodami). Kod i cnt są kluczami w moim pliku danych.Kolumny val0, val1, val2 są podobne do wyników.

Powyższe dane powinny być odczytywane jako: Wyniki dla „ELEMENT 1” rozpoczęto jako 5,6,3, pozostały bez zmian aż do iteracji 4, kiedy zmieniły się na 6,6,3, a następnie zmieniły na 5,6 , 3.

Moje pytanie, czy istnieje sposób na uzyskanie1, 4 i 5 wiersz data.frame? Czy istnieje sposób na wykrycie zmiany kolumn? (Jest 12 kolumn przy tekście)

Próbowałem użyćpowielone danych.tabela (która działała doskonale w większości przypadków), ale w tym przypadku usunie wszystkie duplikaty i pozostawi tylko wiersze 1 i 4 (usuwając piątą).

Masz jakieś sugestie? Wolałbym nie używać pętli for, ponieważ jest około. 2M linie.

questionAnswers(2)

yourAnswerToTheQuestion