[R] Simple loop

Jonathan Daily biomathjdaily at gmail.com
Tue May 3 20:28:11 CEST 2011


It is actually possible and preferable to do this with no loops.
Assuming your data is in a dataframe called dat:

idx <- with(dat, Site == 1 & Prof == 1)
dat <- within(dat, { new = H - ifelse(Site == 1 & Prof == 1,
min(H[idx]), min(H[!idx])) })
dat

which also serves to illuminate the difference between with and within
as a bonus.

HTH,
Jon

On Tue, May 3, 2011 at 11:44 AM, Woida71 <w.gostner at ipp.bz.it> wrote:
> Hello everybody,
> I am beginning with loops and functions and would be glad to have help in
> the following question:
> If i have a dataframe like this
> Site  Prof  H
> 1      1     24
> 1      1     16
> 1      1     67
> 1      2     23
> 1      2     56
> 1      2     45
> 2      1     67
> 2      1     46
> And I would like to create a new column that subtracts the minimum of H from
> H, but for S1 and P1
> only the minimum of the data points falling into this category should be
> taken.
> So for example the three first numbers of the new column write: 24-16,
> 16-16, 67-16
> the following numbers refering to Site1 and Prof2 write: 23-23, 56-23,
> 45-23.
> I think with two loops one refering to the Site, the other to the Prof, it
> should be possible to automatically
> create the new column.
> Thanks a lot for any help.
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Simple-loop-tp3492819p3492819.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.
>



-- 
===============================================
Jon Daily
Technician
===============================================
#!/usr/bin/env outside
# It's great, trust me.



More information about the R-help mailing list