У меня проблема с R complete.cases() funciton.R - complete.cases не все аргументы имеют одинаковую длину
Я использую Electric power consumption data, и я хотел проверить, есть ли какие-либо NA в моем подмножестве, используя функцию complete.cases().
Я ожидаю получить количество полных случаев, но вместо этого получаю сообщение об ошибке, говоря, что «не все аргументы имеют один и тот же legnth».
Я даю complete.cases() только один аргумент, который является фреймом данных. Все столбцы в df имеют одинаковую длину. Конечно, я могу проверить NA в каждом столбце, используя функцию sum (is.na()), но мне любопытно, почему complete.cases() не работает.
Кроме того, когда я создал фрейм данных с 3 столбцами, заполненными случайными числами complete.cases().
Вот мой код, так что вы можете воспроизвести ошибку:
### 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))
Спасибо за воспроизводимый код, но лучше, если бы вы предоставили небольшой набор данных (вместо zip-файла), которые воспроизводят ошибку. – akrun
Преобразуйте столбец POSIXlt (list) в POSIXct (вектор), и он будет работать: 'data $ Time <- as.POSIXct (data $ Time); сумма (complete.cases (данные)) '. См. Также здесь: http://stackoverflow.com/questions/27957819/complete-cases-and-data-frames-with-posixlt – lukeA
@lukeA благодарим вас за помощь. –