On 01/28/2010 08:35 PM, Joel Fürstenberg-Hägg wrote:

Hi all,



I need to replace missing values in a matrix by 10 % of the lowest available 
value in the matrix. I've got a function I've used earlier to replace negative 
values by the lowest value, in a data frame, but I'm not sure how to modify 
it...



nonNeg = as.data.frame(apply(orig.df, 2, function(col) # Change negative values 
to a small value, close to zero
{
    min.val = min(col[col>  0])

    col[col<  0] = (min.val / 10)
    col # Column index
}))



I think this is how to start, but the NA replacement part doesn't work...



newMatrix = as.matrix(apply(oldMatrix, 2, function(col)

{

    min.val = min(mData, na.rm = T) # Find the smallest value in the dataset

    col[col == NA] = (min.val / 10) # Doesn't work...
    col # Column index

}



Does any of you have any suggestions?

Hi Joel,

You probably want to use:

col[is.na(col)]<-min.val/10

Jim

______________________________________________
R-help@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.

Reply via email to