Jestem dość obeznany z R, jak używam go od kilku lat. Niestety, nie jestem zbyt dobrze zorientowany w tworzeniu funkcji, które wymagają zapętlenia lub powtórzenia równania. Problem wygląda następująco:Powtarzanie lub pętla argumentu
Mam wektor zawierający ponad 1000 wartości. Chciałbym obliczyć absolutną różnicę między dwoma zestawieniowymi środkami o jednakowej wielkości z podzbioru tego wektora.
Oto przykład.
mam wektor (VEC) o długości 8
[1] 0.12472963 1.15341289 -1.09662288 -0.73241639 0.06437658 -0.13647136 -1.52592048 1.46450084
ja jak obliczyć średnią z pierwszych wartości 2 (0.12472963, 1.15341289) oraz uzyskanie bezwzględnej różnicy ze średnią z następujących wartości 2 (-1.09662288 -0.73241639), a następnie, idąc dalej w dół wektora.
W tym przypadku, mogę z łatwością korzystać z następującego równania:
abs(mean(vec[1:2])-mean(vec[3:4]))
i stopniowo zwiększać każdą liczbę o 1, tak aby pracować moją drogę w dół ręcznie do końca wektora. Otrzymałbym następujący wektor.
[1] 1.553591 0.3624149 0.8784722 0.497176 0.005337574
Chciałbym jednak mieć zautomatyzowaną procedurę, która pozwala mi być to zrobić na długich wektorów i zmienić liczbę wartości, z którego można obliczyć środki.
Wydaje mi się, że powinna być względnie prosta, ale nie wiem od czego zacząć.
Możecie zajrzeć do 'rollapply()' 'z pakietu zoo'. –