Hi.
There is no need to do this in a for loop.
Here is one approach:

x <- read.table(textConnection("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"), header = TRUE)
closeAllConnections()
x
cbind(x,newCol=unlist(tapply(x[,3],paste(x[,1],x[,2],sep=""),
function(x) x-min(x)))
   Site Prof  H newCol
111    1    1 24      8
112    1    1 16      0
113    1    1 67     51
121    1    2 23      0
122    1    2 56     33
123    1    2 45     22
211    2    1 67     21
212    2    1 46      0

Andrija


On Tue, May 3, 2011 at 5:44 PM, Woida71 <w.gostner@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@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.
>

	[[alternative HTML version deleted]]

