[R] data manipulation help

munguiar@posgrado.ecologia.edu.mx munguiar at posgrado.ecologia.edu.mx
Tue Aug 16 22:37:54 CEST 2005


Thanks to Patrick Burns, Dieter Menne and Peter Alspach for your help.

Peter Alspach indicated me how to get the first and the last capture
of every individual with the following code:

capture <- matrix(rbinom(40, 1, 0.3), 4, 10)

capture
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    0    0    0    0    0    1    1    0    1     1
[2,]    1    0    1    0    0    0    1    1    1     0
[3,]    0    0    0    0    0    0    1    0    1     0
[4,]    0    1    0    1    1    0    0    0    0     0

firstcap<-apply(capture, 1, function(x) min((1:length(x))[x==1])) [1] 6 1
7 2
lastcap<-apply(capture, 1, function(x) max((1:length(x))[x==1])) [1] 10 
9  9  5

Roberto

Hello everybody,

 I have a dataframe with 468 individuals (rows) that I captured at least
once during 28 visits (columns), iso I can know how many times every
individual was captured, 0= not capture, 1=capture.

persistence<-apply(mortacap2,1,sum)

I also want to know when  was the first and the last capture for every
individual,
if I use:

which(mortacap2[1,]==1)


X18.10.2004 X26.10.2004 X28.10.2004 X30.10.2004

          1           5           6           7
I can estimate manually row by row, but I dont get how to estimate the
first and the last capture, to all individuals in the database at the
same time.


I tried
d<-numeric(368)
for (i in 1:368) {d[i]<-which(mortacap2[1:368,]==1}
but it didnt work. Any help would be appreciated.


Thanks in advance!!


Roberto Munguia Steyer
Departamento Biologia Evolutiva
Instituto de Ecologia, A.C.
Xalapa, Veracruz.
MEXICO

 Windows XP
R 2.10




More information about the R-help mailing list