[R] correcting a few data in a large data frame

Mr. Natural drstrong at ucdavis.edu
Mon May 31 23:29:20 CEST 2010


The data frame is lwf that records the survival of bushes over an 8 year
period. Years are called bouts. Dead bushes are recorded as zeros, and live
bushes as "1." 
str(lwf)
'data.frame':   638 obs. of  9 variables:
 $ bushno: int  1 2 3 4 5 6 7 8 9 10 ...
 $ bout1 : int  0 1 0 1 1 1 0 1 0 1 ...
 $ bout2 : int  0 1 0 0 0 0 0 0 0 1 ...
 $ bout3 : int  0 1 0 0 0 0 0 0 0 1 ...
 $ bout4 : int  0 1 0 0 0 0 0 0 0 0 ...
 $ bout5 : int  0 1 0 0 0 0 0 0 0 0 ...
 $ bout6 : int  0 1 0 0 0 0 0 0 0 0 ...
 $ bout7 : int  0 1 0 0 0 0 0 0 0 0 ...
 $ bout8 : int  0 1 0 0 0 0 0 0 0 0 ...

head(lwf)
  bushno bout1 bout2 bout3 bout4 bout5 bout6 bout7 bout8
1      1     0     0     0     0     0     0     0     0
2      2     1     1     1     1     1     1     1     1
3      3     0     0     0     0     0     0     0     0
4      4     1     0     0     0     0     0     0     0
5      5     1     0     0     0     0     0     0     0
6      6     1     0     0     0     0     0     0     0

A number of the data are incorrect. For example, that for bush 145 in year
three is recorded as dead="0"
when it should be alive ="1."  The bushes do not come back to life after
they die.

> lwf[lw$bushno==145,]
    bushno bout1 bout2 bout3 bout4 bout5 bout6 bout7 bout8
144    145     1     1     0     1     1     1     1     1


I know that I can do this with fix(lwf) or edit(lwf). However, I would like
to learn some more R.
What code could I use to correct these data?

I have been screwing around with such as
lwfb[(lwf$bushno==145) & (lwf$bout3==0),0]<- lwf[(lwf$bushno==145) &
(lwf$bout3==0),1]
to no avail.
Any help appreciated.Thanks, MN



-- 
View this message in context: http://r.789695.n4.nabble.com/correcting-a-few-data-in-a-large-data-frame-tp2237834p2237834.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list