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

______________________________________________
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