Неверный тип данных R или неверные данные? - PullRequest
0 голосов
/ 20 ноября 2011

У меня проблемы с выполнением простых функций для фрейма данных, и я не уверен, является ли это тип данных столбца или неверные данные во фрейме данных.

Я экспортировал запрос SQL в файл CSV, затем загрузил его во фрейм данных и прикрепил его.

df <-read.csv("~/Desktop/orders.csv")
Attach(df)

Когда я закончу и запускаю str(df), вот что я получаю:

$ AccountID: Factor w/ 18093 levels "(819947 row(s) affected)",..: 10 97 167 207 207 299 299 309 352 573 ...
$ OrderID   : int  1874197767 1874197860 1874196789 1874206918 1874209100 1874207018 1874209111 1874233050 1874196791 1875081598 ...
$ OrderDate : Factor w/ 280 levels "","2010-09-24",..: 2 2 2 2 2 2 2 2 2 2 ...
$ NumofProducts  : int  16 6 4 6 10 4 2 4 6 40 ...
$ OrderTotal    : num  20.3 13.8 12.5 13.8 16.4 ...
$ SpecialOrder : int  1 1 1 1 1 1 1 1 1 1 ...   

Пытаясь запустить следующие функции, вот что я получаю:

> length(OrderID)
[1] 0

> min(OrderTotal)
[1] NA

> min(OrderTotal, na.rm=TRUE)
[1] 5.00

> mean(NumofProducts)
[1] NA

> mean(NumofProducts, na.rm=TRUE)
[1] 3.462902

У меня есть два вопроса, связанных с этим фреймом данных:

  • У меня есть правильные типы данных для столбцов? Числа против целых чисел против десятичных.
  • Есть ли способ просмотреть набор данных, чтобы найти строки, которые приводят к необходимости использования na.rm = TRUE, чтобы заставить функцию работать? Я хотел бы знать, сколько их и т. Д.

1 Ответ

2 голосов
/ 20 ноября 2011

Разница между num и int на данном этапе довольно неактуальна.

См. Справку (is.na) для начинающих по обработке NA.Сделайте что-то вроде:

sum(is.na(foo))

, чтобы увидеть, сколько значений foo являются значениями NA.Тогда такие вещи, как:

df[is.na(df$foo),]

, чтобы увидеть строки df, где foo - это NA.

...