我对R complete.cases()功能有疑问。
我正在使用Electric power consumption data,我想使用complete.cases()函数检查我的子集中是否有任何NA。
我希望得到完整案例的数量,但我得到一个错误,说“并非所有参数都具有相同的版本”。
我给complete.cases()只有一个参数是数据框。 df中的所有列都具有相同的长度。当然我可以使用sum(is.na())函数检查每列中的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))
答案 0 :(得分:3)
complete.cases和处理日期存在一些问题,这里提到:
R apply error - error in as.matrix.data.frame()
您的数据框包含日期,因此应该与日期相关。我检查了na.omit可以正常使用您的数据集,因此您可以使用它。