[R] increase a value by each group?

Ortiz, John OrtizJ at si.edu
Mon Mar 14 15:18:01 CET 2011


Hi everybody.

I'm looking for the way to increase the depth value in 0.01 for each index group.
Easier to explain with this example:


>my_data=read.table("clipboard", header=TRUE)

Depth	s_name	index
3852	Site_1	144
3852	Site_1	144
3852	Site_1	144
3852	site_A	145
3852	site_A	145
3852	site_A	145
3852	site_A	145
3852	site_B	147
3852	site_B	147
3852	site_B	147
3852	site_B	147
54962	site_C	27
54962	site_C	27
54962	Site_D	217
54962	Site_D	217
54962	Site_D	217
54962	Site_D	217

I'm looking for something like that  (four column)

Depth	s_name	index	Im_looking
3852	Site_1	144	3852.01
3852	Site_1	144	3852.01
3852	Site_1	144	3852.01
3852	site_A	145	3852.02
3852	site_A	145	3852.02
3852	site_A	145	3852.02
3852	site_A	145	3852.02
3852	site_B	147	3852.03
3852	site_B	147	3852.03
3852	site_B	147	3852.03
3852	site_B	147	3852.03
54962	site_C	27	54962.01
54962	site_C	27	54962.01
54962	Site_D	217	54962.02
54962	Site_D	217	54962.02
54962	Site_D	217	54962.02
54962	Site_D	217	54962.02


Currently I found the way to increase the depth but not like I need,

tave = my_data$Depth + (ave(my_data$Depth, my_data$index, FUN=seq_along))/100

Depth	s_name	index	test
3852	Site_1	144	3852.01
3852	Site_1	144	3852.02
3852	Site_1	144	3852.03
3852	site_A	145	3852.01
3852	site_A	145	3852.02
3852	site_A	145	3852.03
3852	site_A	145	3852.04
3852	site_B	147	3852.01
3852	site_B	147	3852.02
3852	site_B	147	3852.03
3852	site_B	147	3852.04
54962	site_C	27	54962.01
54962	site_C	27	54962.02
54962	Site_D	217	54962.01
54962	Site_D	217	54962.02
54962	Site_D	217	54962.03
54962	Site_D	217	54962.04


I'm looking to increase all index group, not just each element.

Thanks in advance,

John Ortiz



More information about the R-help mailing list