From: jim holtman <jholtman_at_gmail.com>

Date: Thu, 20 Mar 2008 04:55:31 -0500

> # output the new matrix

> do.call(rbind, x.l)

[34,] 7 0

[35,] 7 0

>

> I have a dataset consisting of 5 columns and over 5000 rows. Each row

*> gives information about an individual animal, including longevity, i.e.
*

*> at what age an animal died.
*

*> For the model I use I need to create n rows for each animal, n being its
*

*> longevity, and a new column 'survival' with a binary 0/1 outcome. When
*

*> an animal died e.g. at age 5, there have to be 5 rows of identical data,
*

*> except 4 with 0 (=alive) for 'survival', and 1 row with '1' for
*

*> 'survival'.
*

> I thought of creating matrices for each individual, adding first one

*> column 'survival' containing zeros to the original dataset, then
*

*> creating matrices with data = 'the vector containing all elements of an
*

*> individual/row' ([1,], nrow = [a,b], exctracting the element for
*

*> longevity, and then with byrow = TRUE letting the data be filled in by
*

*> row. At the end I would have to set the last element in 'survival' to
*

*> '1', and then combine all matrices into one single one.
*

> So far I've used Excel to create these datesets manually, but with more

*> than 1000 individuals this gets really tedious. I haven't used R before
*

*> for this sort of a bit more advanced data manipulation, and I would
*

*> really appreciate any input/primer about how people would go about doing
*

*> this.
*

> Thanks,

> Felix

*> ::Felix Zajitschek
*

> Evolution & Ecology Research Centre

*> School of Biological, Earth and Environmental Sciences
*

*> University of New South Wales - Sydney NSW 2052 - Australia
*

*> Tel +61 (0)2 9385 8068
*

*> Fax +61 (0)2 9385 1558
*

*> eMail <mailto:felix.zajitschek_at_unsw.edu.au>
*

*> felix.zajitschek_at_unsw.edu.au
*

> <http://www.bees.unsw.edu.au/school/researchstudents/zajitschekfelix.htm

*> l> www.bees.unsw.edu.au/school/researchstudents/zajitschekfelix.html
*

*> R-help_at_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.
*

>

Date: Thu, 20 Mar 2008 04:55:31 -0500

Since you did not provide a sample of your data, here is an example of how to take a vector and create a matrix with 5 entries for each value, with the extra ones having a zero in the second column:

> x <- sample(1:7, 20, T)

> table(x)

x

1 2 3 4 5 6 7

2 4 3 2 4 4 1

*> # create a matrix with 5 rows of each value in the vector 'x' with the extra rows
*

> # having 0 in the second column

> x.l <- lapply(split(x, x), function(.val){

+ # pad with at least 5 extra rows to make sure matrix is filled out + z <- cbind(c(.val, rep(.val[1],5)), c(rep(1, length(.val)), rep(0,5))) + z[1:5,] # only return the first 5 + })

> # output the new matrix

> do.call(rbind, x.l)

[,1] [,2]

[1,] 1 1 [2,] 1 1 [3,] 1 0 [4,] 1 0 [5,] 1 0 [6,] 2 1 [7,] 2 1 [8,] 2 1 [9,] 2 1 [10,] 2 0 [11,] 3 1 [12,] 3 1 [13,] 3 1 [14,] 3 0 [15,] 3 0 [16,] 4 1 [17,] 4 1 [18,] 4 0 [19,] 4 0 [20,] 4 0 [21,] 5 1 [22,] 5 1 [23,] 5 1 [24,] 5 1 [25,] 5 0 [26,] 6 1 [27,] 6 1 [28,] 6 1 [29,] 6 1 [30,] 6 0 [31,] 7 1 [32,] 7 0 [33,] 7 0

[34,] 7 0

[35,] 7 0

>

On Thu, Mar 20, 2008 at 1:51 AM, Felix Zajitschek - UNSW
<felix.zajitschek_at_unsw.edu.au> wrote:

> Hi all,

>

> I have a dataset consisting of 5 columns and over 5000 rows. Each row

>

> I thought of creating matrices for each individual, adding first one

>

> So far I've used Excel to create these datesets manually, but with more

>

> Thanks,

> Felix

> >

> ______________________________________________________________

> Evolution & Ecology Research Centre

>

> <http://www.bees.unsw.edu.au/school/researchstudents/zajitschekfelix.htm

> >

> [[alternative HTML version deleted]]

>

> ______________________________________________

>

-- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem you are trying to solve? ______________________________________________ R-help_at_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.Received on Thu 20 Mar 2008 - 09:58:33 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Thu 20 Mar 2008 - 11:30:23 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*