Страница 1 из 1
Разный вывод функции "summary"
Добавлено: 30 окт 2013, 14:27
ymr3R9Jge
Здравствуйте. Столкнулся с такой проблемой: есть набор данных (см. прикреплённый файл). Это блочная модель, сохранённая в виде CSV-файла. Она обрабатывается в R в виде
data.frame. При вызове функции
summary для всей модели - граничные значения первых столбцов (номерные значения) указываются правильно:
Код: Выделить всё
NUM NUM_BL
Min. : 1 Min. : 0
1st Qu.: 3524 1st Qu.: 3523
Median : 7048 Median : 7046
Mean : 7048 Mean : 7046
3rd Qu.:10571 3rd Qu.:10570
Max. :14094 Max. :14093
При вызове
summary для каждого столбца в отдельности - неправильно (такое ощущение, что не находит последние строки):
Код: Выделить всё
> summary(bl$NUM)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1 3524 7048 7048 10570 14090
> summary(bl$NUM_BL)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0 3523 7046 7046 10570 14090
А для столбца
NUM - ещё различаются и 3-и квартили
Re: Разный вывод функции "summary"
Добавлено: 30 окт 2013, 15:34
gamm
bug, однако ... команду summary() клинит для чисел более 14090
Код: Выделить всё
> summary(c(1,2,3,4,5)+20000)
Min. 1st Qu. Median Mean 3rd Qu. Max.
20000 20000 20000 20000 20000 20000
причем во всех версиях ... копаться не охота, видимо, что-то с преобразованием чисел
Re: Разный вывод функции "summary"
Добавлено: 30 окт 2013, 22:52
ymr3R9Jge
И ошибка на разных ОС - на домашнем компе стоит FreeBSD - тут summary тоже глючит.
[ Сообщение с мобильного устройства ]
Re: Разный вывод функции "summary"
Добавлено: 04 ноя 2013, 13:26
Игорь Черниенко
При вычислении над единичным вектором, независимо от его длины происходит округление, как вверх так и вниз.
Код: Выделить всё
> df<-data.frame(x=rnorm(n=20000,mean=10,sd=15),y=rnorm(n=20000,mean=20,sd=18))
> summary(df)
x y
Min. :-49.3447 Min. :-53.182
1st Qu.: 0.1113 1st Qu.: 7.848
Median : 10.0622 Median : 19.890
Mean : 10.0443 Mean : 20.023
3rd Qu.: 20.2222 3rd Qu.: 32.267
Max. : 63.4305 Max. :101.605
> summary(df[,1])
Min. 1st Qu. Median Mean 3rd Qu. Max.
-49.3400 0.1113 10.0600 10.0400 20.2200 63.4300
> summary(df[1:100,1:2])
x y
Min. :-29.6739 Min. :-30.208
1st Qu.: -0.8663 1st Qu.: 5.554
Median : 9.5432 Median : 19.920
Mean : 9.5397 Mean : 19.672
3rd Qu.: 19.2296 3rd Qu.: 34.020
Max. : 50.2193 Max. : 66.292
> summary(df[1:100,1])
Min. 1st Qu. Median Mean 3rd Qu. Max.
-29.6700 -0.8663 9.5430 9.5400 19.2300 50.2200
> summary(df[1:2000,1])
Min. 1st Qu. Median Mean 3rd Qu. Max.
-42.4300 0.4343 9.9880 10.3100 20.1500 62.2400
> summary(df[1:2000,1:2])
x y
Min. :-42.4286 Min. :-35.671
1st Qu.: 0.4343 1st Qu.: 7.429
Median : 9.9885 Median : 19.091
Mean : 10.3091 Mean : 19.808
3rd Qu.: 20.1502 3rd Qu.: 32.462
Max. : 62.2423 Max. : 81.896
Может быть это не баг, а фича? :0)
Re: Разный вывод функции "summary"
Добавлено: 04 ноя 2013, 14:08
gamm
Игорь Черниенко писал(а):Может быть это не баг, а фича? :0)
точно, фича - смотрим сырцы:
Код: Выделить всё
function(object, ..., digits = max(3, getOption("digits") - 3))
эти перцы по умолчанию берут 7-3=4 значащих цифры. Интересно, почему не 7, как все остальные? смутило то, что все сломалось на числе 14090, уж больно не круглое (сегодня налетел на похожую фичу на числе 100001, так сразу стало понятно).