Simple loop
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.