Jarek Statinowy

Jarek Statinowy Z zapałem do pracy

Temat: Powtarzanie (rep) w petli

Witam

Mam taki problem

mam tabele

DANE
celowa 301040 5
Losowa 301040 8
celowa 301060 8
celowa 301060 8
celowa 301060 5
celowa 301060 5
Losowa 301080 5
Losowa 301080 8
celowa 301080 10
celowa 301080 5
celowa 301080 5
celowa 301080 5
celowa 301080 5


i drugą

LICZEBNOSC
301040 123
301060 987
301080 856


chce wypełnić taki wiersze
dla i=1 filtruje DANE by mieć rekordy rożne od 301040( 2 kolumna)
Cały wiersz będzie miał 11 elementów (tyle jest po filtrowaniu wierszy) przy czym 4 mają więc wartość 4/987 a siedem wartość 7/856
dla i=2 filtruje DANE by mieć rekordy rożne od 301060
Cały wiersz będzie miał 9 elementów (tyle jest po filtrowaniu wierszy) przy czym 2 mają więc wartość 2/123 a siedem wartość 7/856
analogicznie dla i=3

Generalnie ten szukany wiersz ma się składać z n- elementów (n liczba wierszy w DANE po sortowaniu) a wartości powinny być takie
m-elementów o wartości (ilość m/ Liczebność (dla m)) (itd. )

Niestety z góry nie wiem ile będzie grup (301040, 301060,301080) Może być ich więcej.

Mam nadzieję, że udało mi się przekazać sens - jeśli nie to postaram się wyjaśnić.

Z góry dzięki za pomoc
Nadmienię, że zrobiłem sobie takie coś
tab1 <- as.data.frame(table(DANE$NRkasy ))

dzięki czemu wiem, że mam
301040 2 rekordy
301060 4 rekordy
301080 7 rekordów
więc wiem jaka liczba ma być w liczniku i ile razy ją powtarzać

Nie wiem natomiast jak powiązać to z tabelą LICZEBNOSC
(mianownik) i jak to zapisać by wpisywało poprawnie dla poszczególnych i.

[tak to widzę]
wektor=rep(ilość(301060)/LICZEBNOSC(301060),ilość(301060)) rep(ilość(301080)/LICZEBNOSC(301080),ilość(301080))
jeden wektor tak uzupełniony dla i=1 (z pominięciem 301040)

dla i=2 podobnie z tym, że pomijamy 301060
dla i=3 pomijamy 301080
dla i=4 (gdyby było pomijalibyśmy np. 4525525)Ten post został edytowany przez Autora dnia 15.03.16 o godzinie 14:20