Możliwe Duplikat:
Can `ddply` (or similar) do a sliding window?istnieje funkcję jak rollapply do data.frame
jest tam działają jak rollapply (standard R lub w opakowaniu CRAN), który działa na zasadzie data.frame, ale nie przekształca go w macierz. Aplikacja rollapply może być używana z data.frame, ale jeśli data.frame ma typy mieszane, to każde okno danych jest konwertowane na znak (macierz).
Wolę funkcję, która obsługuje szerokość na.pad, wyrównanie, itp podobnie jak rollapply
Przykład
Podjęcie jakichkolwiek data.frame z mieszanymi typami
test = data.frame(Name = c("bob" , "jane" , "joe") , Points = c(4 , 9 , 1))
Powiedzmy, że chcesz przetasować z rozmiarem okna 2. Pierwsza iteracja FUN jest wywoływana z data.frame, która obejmuje tylko wiersze 1 i 2 testu.
RollapplyThatRespectsDataFrame(... , FUN = function(x) { ... })
więc po pierwszej iteracji będzie ustawiony x = data.frame(Name = c("bob" , "jane") , Points = c(4 , 9))
drugiej iteracji jest data.frame z wierszy 2 i 3 test
.
Zasadniczo ta nowa funkcja działa tak samo, jak rollapply, z tym wyjątkiem, że działa poprawnie z data.frames. Nie przekształca się w macierz.
To [pojawił się wcześniej] (http: // sta ckoverflow.com/q/7225992/324364), ale nie sądzę, że kiedykolwiek miał satysfakcjonującą odpowiedź. – joran
może być konieczne napisanie własnego =) – SFun28
Jeśli tak, proszę udostępnij! – joran