różnica między "for" a "apply" w działaniu

11 views
Skip to first unread message

Pawel Kleka

unread,
Jan 14, 2015, 7:09:35 AM1/14/15
to polska-grupa-...@googlegroups.com
Mam kłopot ze zrozumieniem źródła błędu.

Na danych w macierzy dwukolumnowej chcę dokonać prostej operacji (zamiany wyników surowych na przeliczone zgodnie z tabelą norm)

m[,3] <- apply(cbind(m[,1],m[,2]), 1, f.przelicz)

lub 

for(i in 1:dim(m)[1]){
m[i,3] <- f.przelicz(m[i,1], m[i,2])
}

Funkcja przeliczająca znajduje wiersz z wartością surową (m[,1]) i zwraca wartość z kolumny wskazanej przez wartość w m[,2]

Ręcznie wszystko się zgadza, to co robi pętla for jest poprawne, ale z wyniku działania apply dostaje błędy: NA lub źle odnalezione wartości.

Gdzie szukać przyczyny różnicy?


Pozdrawiam
Paweł Kleka





Przemyslaw Biecek

unread,
Jan 14, 2015, 7:41:55 AM1/14/15
to polska-grupa-...@googlegroups.com
Czy f.przelicz przyjmuje jeden argument czy dwa?
apply wyśle jej jeden
a for dwa.
P

--
Otrzymujesz tę wiadomość, bo subskrybujesz grupę „Polska Grupa Uzytkownikow R” w Grupach dyskusyjnych Google.
Aby anulować subskrypcję tej grupy i przestać otrzymywać od niej wiadomości, wyślij e-maila na polska-grupa-uzytko...@googlegroups.com.
Więcej opcji znajdziesz na https://groups.google.com/d/optout.

Paweł Kleka

unread,
Jan 14, 2015, 3:58:16 PM1/14/15
to polska-grupa-...@googlegroups.com
F.przelicz jest dwuargumentowa.

Dziękuję! Teraz rozumiem dlaczego to nie działało.

Pozdrawiam serdecznie
Paweł

Reply all
Reply to author
Forward
0 new messages