[R] What do you think about my function?

Mike Lawrence Mike.Lawrence at dal.ca
Tue Jun 2 17:43:39 CEST 2009


It would help to explain the problem that the function is designed to solve.

On Tue, Jun 2, 2009 at 9:35 AM, Grześ <gregorio99 at gmail.com> wrote:
>
> Hello,
> I want to know what do you think about my function. I know that it isn't
> briliant :/ but what do you think? What I should do that my function will be
> better? (now is very slow and not ideal, sometimes I also get a mistake!)
>
> ########## My function  #############################################
> dzieci<-transform(dzieci, zywnosc=0)
>
> zywnoscCalosc<- function( jedzenie, sklep, n1, n2, n3, n4, d1, d2, d3, d4 )
> {
>   skl <- sklep
>   wynik <- vector()
>   wynik <- jedzenie
>
>   ndf <- data.frame(nn1=n1,nn2=n2,nn3=n3,nn4=n4)
>   ddf <- data.frame(dd1=d1,dd2=d2,dd3=d3,dd4=d4)
>
>   for (i in 1:length(n1)){
>
>      wekt_n = ndf[i,]
>      wekt_d = ddf[i,]
>
>      wekt_n_ok = wekt_n[!is.na(wekt_n)]
>      wekt_n_ok = as.numeric(wekt_n_ok)
>      wekt_d_ok = wekt_d[!is.na(wekt_d)]
>      wekt_d_ok = as.numeric(wekt_d_ok)
>
>      dl_n = length(wekt_n_ok)
>      dl_d = length(wekt_d_ok)
>
>      if (skl[i] %in% NA){ wynik[i]=NA}
>
>      else {wynik[i] =
> sum(((1*wekt_n_ok)+(3*wekt_n_ok))/((1*dl_n)+(3*dl_d)))}
>      }
> return (wynik)
> }
>
> ### Call function ###
>
> dzieci$zywnosc <- zywnoscCalosc(dzieci$zywnosc, dzieci$sklepik,
> dzieci$sklslodycze, dzieci$sklnapojegazowane, dzieci$sklfastfood,
> dzieci$sklsloneprzekaski, dzieci$sklmlekoiproduktymleczne,
> dzieci$sklwodamineralnasoki, dzieci$sklkanapki, dzieci$sklwarzywaiowoce)
>
> #####################################################################
>
> And about mistake in my function:
> This is one row from my database where I get a mistake and I don't know why?
>
> sklepik; sklslodycze; sklnapojegazowane;
>   1           1                      1
> sklmlekoiproduktymleczne; sklfastfood; sklwodamineralnasoki;
>           1                             1                    1
> sklsloneprzekaski; sklkanapki; sklwarzywaiowoce;
>   1                         0                    1
>
> Afetr call my function I get as a result:
> dzieci$zywnosc[7590]
> [1] 1
> But in my opinion I should get a value = 0.75 What is wrong?
>
>
> --
> View this message in context: http://www.nabble.com/What-do-you-think-about-my-function--tp23831687p23831687.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



-- 
Mike Lawrence
Graduate Student
Department of Psychology
Dalhousie University

Looking to arrange a meeting? Check my public calendar:
http://tr.im/mikes_public_calendar

~ Certainty is folly... I think. ~




More information about the R-help mailing list