[R] increase a value by each group?

ONKELINX, Thierry Thierry.ONKELINX at inbo.be
Mon Mar 14 15:59:41 CET 2011


Something like this?

my_data=read.table("clipboard", header=TRUE)
my_data$s_name <- factor(my_data$s_name)
library(plyr)
ddply(my_data, .(s_name), function(x){
	x$Im_looking <- x$Depth + as.numeric(x$s_name) / 100
	x
})

Best regards,

Thierry

----------------------------------------------------------------------------
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek
team Biometrie & Kwaliteitszorg
Gaverstraat 4
9500 Geraardsbergen
Belgium

Research Institute for Nature and Forest
team Biometrics & Quality Assurance
Gaverstraat 4
9500 Geraardsbergen
Belgium

tel. + 32 54/436 185
Thierry.Onkelinx op inbo.be
www.inbo.be

To call in the statistician after the experiment is done may be no more than asking him to perform a post-mortem examination: he may be able to say what the experiment died of.
~ Sir Ronald Aylmer Fisher

The plural of anecdote is not data.
~ Roger Brinner

The combination of some data and an aching desire for an answer does not ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey
  

> -----Oorspronkelijk bericht-----
> Van: r-help-bounces op r-project.org 
> [mailto:r-help-bounces op r-project.org] Namens Ortiz, John
> Verzonden: maandag 14 maart 2011 15:18
> Aan: r-help op r-project.org
> Onderwerp: [R] increase a value by each group?
> 
> 
> 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
> 
> ______________________________________________
> R-help op 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.
> 


More information about the R-help mailing list