Я пытаюсь преобразовать все значения NULL в моем наборе данных в NA. Короче
Объяснение вопроса
Мой набор данных выглядит так:
введите описание изображения здесь
Однако я заметил одну вещь: когда я пытаюсь найти количество пустых значений, он показывает количество значений NA в моем наборе данных, не включая значения NULL. Я хотел бы преобразовать значения NULL в NA, чтобы удалить их.
Итак, я подсчитал количество отсутствующих значений в моем полном наборе данных, а затем в столбцах как
> dim(raw_data)
[1] 80983 16
> # Count missing values in entire data set
> table(is.na(raw_data))
FALSE TRUE
1247232 48496
> # Count na 's column wise
> na_count <-sapply(raw_data, function(y) sum(length(which(is.na(y)))))
> na_count <- data.frame(na_count)
> na_count
na_count
Merchant_Id 1
Tran_Date 1
Military_Time 1
Terminal_Id_Key 1
Amount 1
Card_Amount_Paid 1
Merchant_Name 1
Town 1
Area_Code 1
Client_ID 48481
Age_Band 1
Gender_code 1
Province 1
Avg_Income_3M 1
Value_Spent 1
Number_Spent 1
Как вы видно, что он не показывает NULL как NA, поэтому я попытался преобразовать его как:
> # Turn Null to NA
> temp_data <- raw_data
>
> temp_data[temp_data == ''] = NA
Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format
Я также пробовал
> # Turn Null to NA
> temp_data <- raw_data
> temp_data[temp_data == 'NULL'] = NA
Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format
Но я получаю указанную выше ошибку. За ним последовал последний из приведенных ниже (который был лучше, потому что у меня не было ошибки, но я все еще получил значения NULL в моем наборе данных).
> raw_data[is.null(raw_data)] <- NA
> table(is.na(raw_data))
FALSE TRUE
1247232 48496
Не могли бы вы предложить способы справиться с этой ошибкой ?
Я также пытался избавиться от даты и получил другую ошибку, когда снова попытался удалить значения NULL:
> df <- raw_data
>
> df1 <- transform(df, date = as.Date(df$Tran_Date), time = format(df$Tran_Date, "%T"))
>
> df1[df1 == NULL] = NA
Error in matrix(if (is.null(value)) logical() else value, nrow = nr, dimnames = list(rn, :
length of 'dimnames' [2] not equal to array extent