[R] [Fwd: Re: subsetting]

henrik.parn at bio.ntnu.no henrik.parn at bio.ntnu.no
Fri Oct 26 13:14:34 CEST 2007


Sorry that I was unclear. For an individual to qualify for my analysis I 
want both of the following two criteria to be fulfilled:

First, I want to select measurement taken at a certain age: for the
focal individual the year of measurement (year) should be the same as 
year.hatch
Second, I want the focal individual to be born by a mother that 
reproduces for the first time.
So the /parents /of the focal individual should have year == 
year.1st.reprod.

The problem for me, I think, is that in my data set with several 
generations, an individual can be both offspring and parent to other 
offspring at the same time (e.g. id=3 in test.data). In the 'offspring 
role', to select a individual from which I want the measurements, I 
would use year==year.hatch. However, for the /same/ individual in the 
'parent role', to pass the 'parent test', it should have 
year==year.1st.reprod.

In the test data,
id=3 is an offspring of id=1 in id=1's first breeding year (OK!). We 
then select the measurements from id=1 on the year it is born, i.e 1996.
id=4 is an offspring of id=2 in id=2's first breeding year (OK!). We 
then select the measurements from id=4 on the year it is born, i.e 1996.
id=5 is an offspring of id=3 in id=3's first breeding year (OK!). We 
then select the measurements from id=5 on the year it is born, i.e 1997.
id=6 is an also an offspring of id=3, however /not /from id=3's first 
breeding year (not OK!).


Cheers,

Henrik


John Kane wrote:

 >I don't understand the criteria that gives you just
 >the three ids.
 >
 >As I read the criteria if we put the data into a
 >data.frame you have
 >
 >subset(mydata ,year==year.hatch & year.1st.reprod ==
 >year.hatch+1)
 >
 >but this gives more than the three ids. What am I
 >missing?
 >
 >--- henrik.parn at bio.ntnu.no wrote:
 >
 >
 >
 >>Dear all,
 >>
 >>I have received some data on birds that looks sth
 >>like this:
 >>
 >># a unique id for each individual
 >>id <- c(1,1,1,2,2,2,3,3,3,4,4,5,6)
 >>
 >># the year the bird was measured
 >>year <- c(1995, 1996, 1997, 1995, 1996, 1997, 1996,
 >>1997, 1998, 1996, 1997, 1997, 1998)
 >>
 >># the year the bird was hatched
 >>year.hatch <- c(1995, 1995, 1995, 1995, 1995, 1995,
 >>1996, 1996, 1996, 1996, 1996, 1997, 1998)
 >>
 >># the year when the bird reproduced the first time
 >>(for simplicity in the dummy data, all birds
 >>reproduce the year after it was born)
 >>year.1st.reprod <- year.hatch + 1
 >>
 >># some status (0/1) of an individual
 >>status <- c(1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1)
 >>
 >># the id of the mother
 >>id.mother <- c(NA, NA, NA, NA, NA, NA, 1, 1, 1, 2,
 >>2, 3, 3)
 >>
 >># Status of the mother (0/1)
 >>status.mother <- c(NA, NA, NA, NA, NA, NA, 1, 1, 1,
 >>0, 0, 1, 1)
 >>
 >># a measure of individual
 >>measure <- rnorm(13)
 >>
 >>test.data <- data.frame(id, year, year.hatch,
 >>year.1st.reprod, status, id.mother, status.mother,
 >>measure)
 >>test.data
 >>--------------------------------
 >>
 >>I want to compare measures of individuals that have
 >>mothers of different status.
 >>
 >>But I need help to make the following subset of
 >>individuals:
 >>
 >>I want the measures that are taken on individuals
 >>the year they are hatched. So for the individuals I
 >>compare, I want year==year.hatch.
 >>
 >>...and
 >>
 >>I also want that the individuals from which I obtain
 >>measurements are offspring from the first
 >>reproduction year of their parents.
 >>So for the individuals I compare, I want their
 >>/mothers/ to have year==year.1st.reproduction.
 >>
 >>Applying my selection criteria on the simple dummy
 >>data above, I would end up with the measures from
 >>id=3 in 1996, id=4 in 1996 and id=5 in 1997.
 >>
 >>
 >>Can anyone help me how to perform this subsetting in
 >>R?
 >>
 >>
 >>Thanks a lot in advance!
 >>
 >>
 >>Henrik
 >>
 >>



More information about the R-help mailing list