Dear all

 

I have written a function to perform a very simple but useful task which I
do regularly. It is designed to show how many values are missing from each
variable in a data.frame. In its current form it works but is slow because I
have used several loops to achieve this simple task. 

 

Can anyone see a more efficient way to get the same results? Or is there
existing function which does this?

 

Thanks for your help

Tim

 

Function:

miss <- function (data) 

{

    miss.list <- list(NA)

    for (i in 1:length(data)) {

        miss.list[[i]] <- table(is.na(data[i]))

    }

    for (i in 1:length(miss.list)) {

        if (length(miss.list[[i]]) == 2) {

            miss.list[[i]] <- miss.list[[i]][2]

        }

    }

    for (i in 1:length(miss.list)) {

        if (names(miss.list[[i]]) == "FALSE") {

            miss.list[[i]] <- 0

        }

    }

    data.frame(names(data), as.numeric(miss.list))

}

 

Example:

data(ToothGrowth)

     data.m <- ToothGrowth

     data.m$supp[sample(1:nrow(data.m), size=25)] <- NA

     miss(data.m)


        [[alternative HTML version deleted]]

______________________________________________
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