[R] Change negative values in column
Steve Lianoglou
mailinglist.honeypot at gmail.com
Tue Nov 3 17:40:03 CET 2009
Hi Joel,
On Nov 3, 2009, at 11:30 AM, Joel Fürstenberg-Hägg wrote:
> > > However, I get the following error:
> > >
> > > Error in if (x[i] < 0) { : argument is of length zero
> >
> > This is telling you that x[i] is a zero length object, so you're
> > indexing is wrong
> >
>
> Doesn't x[i] means index i in vector x?
Yes.
> Or could it be that there's a missing value at that index?
Don't think so: NA < 0 returns NA, not an error regarding the
argument's length in your `if` clause.
> How do I deal with them in that case? I need to keep the length of
> the vector so I cannot remove NAs if that affects the length...
I'm not sure how to answer this. Just try to learn a bit more about
how to index using integers, vectors of integers, and vectors of
logical/boolean values.
> > This will work over each column of an "orig.df" data.frame (assumes
> > all cols are numeric) and generate the new data.frame you're looking
> > for:
> >
> > new.df <- as.data.frame(apply(orig.df, 2, function(col) {
> > min.val <- min(col[col > 0])
> > col[col < 0] <- min.val
> > col
> > }))
> >
>
> Ok, that's exactly what I was aming for! Thanks a lot!!
Great. Don't just use that code though, understand what it's doing ..
it'll help you to slice and dice your data in the future.
If you have any questions regarding the details of that code snippet
that you can't figure out after careful inspection, feel free to ask.
-steve
--
Steve Lianoglou
Graduate Student: Computational Systems Biology
| Memorial Sloan-Kettering Cancer Center
| Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact
More information about the R-help
mailing list