[R] Frequency: NA values returns zero

Muhammad Rahiz muhammad.rahiz at ouce.ox.ac.uk
Tue Feb 23 16:31:51 CET 2010


Hi all,

I created the following script to make a frequency count for 
multi-dimenstioanl array. There is no problem with the results except 
for the NA values which returns 0.

Now, I don't want NA to return 0 but to return as NA. This is because 
I'm dealing with gridded data in which the NODATA_VALUE = NA. If NA 
returns 0, it will create confusion when I create color maps.

Any suggestions how I should modify the script?

Thanks,



Muhammad



rm(list=ls())                    # Cleans workspace

# ---------- ORIGINAL INPUT PARAMETERS---------- #

# x0  <- dir(pattern="txt")            ## List files
# fl  <- length(x0)                            # File count
# arr <- array(0, dim=c(2,2,fl))        ## Create dummy array

# x1  <- arr
# for (a in 1:fl){
# x1[,,a] <- as.matrix(read.table(x0[a]))}    # Read files


# ---------- START ---------- #

 x1 <- array(c(1,2,3,NA),dim=c(2,2,5))
 fl <- 5


# ---------- PROCESS ---------- #

 count <- function(x)                # Create count() function   
{
 length(x[!is.na(x) & x < 4])              ## Two conditions specified. 
Add more if necessary
}

 x2 <- apply(x1, c(1,2), count)        # Frequency count
 x3 <- round((x2 / fl) *100, digits=2)    # Express frequency count as 
percentage of total count



More information about the R-help mailing list