R - complete.cases not all arguments have the same length

r na
14,288

There is some problem with complete.cases and handling dates, it is mentioned here:

R apply error - error in as.matrix.data.frame()

Your data frame contains dates so it should be related to that. I checked that na.omit works fine with your dataset so you can use it instead.

Share:
14,288
Adrian Gasiński
Author by

Adrian Gasiński

Aspiring Data Scientist. Technology Entrepreneurship enthusiast. Check out my blog (datahacking.tech) and my newsletter (Data Science Weekly Five).

Updated on September 14, 2022

Comments

  • Adrian Gasiński
    Adrian Gasiński over 1 year

    I have problem with R complete.cases() funciton.

    I am using Electric power consumption data and I wanted to check if there are any NAs in my subset using complete.cases() function.

    I expect to get number of complete cases but instead I get an error saying that "not all arguments have the same legnth".

    I give complete.cases() only one argument that is data frame. All columns in df have the same length. Of course I can check NAs in every column using sum(is.na()) funciton but I am curious why complete.cases() doesn't work.

    Moreover when I generated data frame with 3 columns filled by random numbers complete.cases() worked.

    Here is my code so that you can reproduce error:

    ### READING DATA
    
    # reading full file
    data <- read.table("household_power_consumption.txt", header=1, sep=";", na.strings="?")
    
    # changing Date and Time columns to R classes
    data$Time = strptime(paste(data$Date, data$Time),"%d/%m/%Y %H:%M:%OS")
    data$Date = as.Date(data$Date, format="%d/%m/%Y")
    
    # filtering to needed days
    data = subset(data, Date == '2007-02-01' | Date == '2007-02-02')
    
    # checking if there are any NAs in data
    dim(data)
    sum(complete.cases(data))