r - How to get number and names of columns that have at least one null value -
i filter out columns have @ least 1 missing value after getting number of columns , thier names. use function names , number of columns contain missing values, filter them out of data frame:
checkcolallnulls <- if (ncol(filter(function(x) all(is.na(x)), df)) > 0) { cat("columns have nulls:",ncol(filter( function(x) all(is.na(x)), df))) cat("columns names have nulls:",colnames(filter( function(x) all(is.na(x)), df))) df <- filter(function(x) ! all(is.na(x)), df) print("columns having nulls removed ") } else { print("no columns having nulls found") }
i tried same operation columns have @ least 1 missing value using colsums
out success.
checkcolnulls <- if ( colsums(is.na(df)) > 0) { cat("columns have more 1 null:",ncol(colsums(is.na(df)) > 0 )) cat("columns names have more 1 null:",colnames(colsums(is.na(df)) > 0 )) df <- filter(function(x) colsums(is.na(x)) > 0), df) print("columns having @ least 1 null removed ") } else { print("no columns having @ least 1 null found") }
here error get:
error in colsums(is.na(x)) : 'x' must array of @ least 2 dimensions in addition: warning message: in if (colsums(is.na(df)) > 0) { : condition has length > 1 , first element used
here solution using any(is.na(x))
:
checkcolallnulls <- if (ncol(filter(function(x) any(is.na(x)), df)) > 0) { cat("columns have nulls:",ncol(filter( function(x) any(is.na(x)), df))) cat("\n\n") cat("columns names have nulls:",colnames(filter( function(x) any(is.na(x)), df))) cat("\n\n") df <- filter(function(x) ! any(is.na(x)), df) print("columns having nulls removed") } else { print("no columns having nulls found") }
Comments
Post a Comment