On Feb 11, 2010, at 7:32 PM, Keeeeeeee wrote:


Dear helpers,

FYI, I am a beginner of R, just have dealt with MATLAB or JAVA.

I want to know how to solve one problem given 4 variables: year_1, year_2,
tall_1, tall_2.
The tall_1 is measured at year_1 and tall_2 at year_2.
The tall has grown up such as uniformly 1 cm/yr.

The data is like

year_1 year_2 tall_1 tall_2
2007    2010    12    15
1999    2009    6    16
2003    2005    11    13
2002    2009    3    10
   .    .    .    .    .
   .    .    .    .    .
   .    .    .    .    .
   .    .    .    .    .

So I need to get the average tall of the plant against year, for all the
years of available data.
For an individual plant, Wouldn't this just be (tall_2 + tall_1)/2?

(Or if you wanted to do it the hard way then use seq and divide by number of years:)

> dfp <- rd.txt("year_1 year_2 tall_1 tall_2
+ 2007    2010    12    15
+ 1999    2009    6    16
+ 2003    2005    11    13
+ 2002    2009    3    10")

> dfp$plant.avg <- apply(dfp, 1, function(x) sum(seq(x[3], x[4]) ) / (x[2]-x[1]+1) )
> dfp
  year_1 year_2 tall_1 tall_2 plant.avg
1   2007   2010     12     15      13.5
2   1999   2009      6     16      11.0
3   2003   2005     11     13      12.0
4   2002   2009      3     10       6.5

> dfp$plant.avg2 <- apply(dfp, 1, function(x) (x[3]+ x[4] ) / 2 )
> dfp
  year_1 year_2 tall_1 tall_2 plant.avg plant.avg2
1   2007   2010     12     15      13.5       13.5
2   1999   2009      6     16      11.0       11.0
3   2003   2005     11     13      12.0       12.0
4   2002   2009      3     10       6.5        6.5

I don't think you need to create the display below if you want to answer the question posed. And if this happens to be homework, be sure that I get credit.

--
David

The year_1 and year_2 are recorded so that a plant is alive if the year of a question is equal to or grater than the year_1 and equal to and less than
the year_2.

For example,
1999 2000 2001 2002 2003 2004 2005 2006 2007 2008
2009    2010
  6          7          8          9        10        11        12
13        14       15      16
3 4 5 6
7         8        9       10
                                                11        12        13

12       13      14        15

avg
 6        7            8         6         25/3 ...etc.

Since the amount of the data is too huge, I need to use appropriate
functions and algorithm but I am
not good at programming R.

I wish you help me out from this hell problem please.

Thanks,
Keeeeeeee

--


David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
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.

Reply via email to