Message-ID: <428990A0.5050501@stats.uwo.ca>
Date: 2005-05-17T06:35:12Z
From: Duncan Murdoch
Subject: NA erase your data trick
In-Reply-To: <Pine.LNX.4.58.0505170134070.5648@ls02.fas.harvard.edu>
Anders Schwartz Corr wrote:
> Oops,
>
> I just erased all my data using this gizmo that I thought would replace -9
> with NA.
>
> A) Can I get my tcn5 back?
Not if you don't have it backed up somewhere else.
I wouldn't recommend keeping your only copy of anything in an R
workspace. It's too easy to accidentally delete or overwrite it. Keep
the original in a file.
>
> B) How do I do it right next time, I learned my lesson, I'll never do it
> again, I promise!
>
> Anders Corr
>
>
>>for(i in 1:dim(tcn5)[2]){ ##for the number of columns
>
> + for(n in 1:dim(tcn5)[1]){ ##for the number of rows
> + tcn5[is.na(tcn5[n,i]) | tcn5[n,i] == -9] <- NA
For some values of i and n, this last line simplifies to
tcn5[TRUE] <- NA
which is why you lost your data.
You want to (a) think in vectors, or (b) use an if statement:
(a) Replace your whole series of statements with
tcn5[is.na(tcn5) | tcn5 == -9] <- NA
or
(b) Replace just the last line above with
if (is.na(tcn5[n,i]) | tcn5[n,i] == -9) tcn5[n,i] <- NA
I'd choose (a); it's a lot cleaner and will run faster.
Duncan Murdoch