2014-12-01 2 views
0

Вопросг Изменения квантиль «типа» в summary.default

Исходя из this question, который спросил о различном квантиле types, можно изменить type аргумент для quantile при использовании функции summary()?

Например, принимая набор данных

d <- c(11, 4, 1, 4, 2, 2, 6, 10, 5, 6, 0, 6, 3, 3) 

Я рад, что

quantile(d, probs=0.25, type=6) 

и

quantile(d, probs=0.25, type=7) 

дают разные результаты, и что по умолчанию используется в typesummary является type=7. Можно ли сообщить summary, чтобы использовать type=6?

Notes/Выходные

quantile(d, probs=0.25, type=6) 
25% 
2 

quantile(d, probs=0.25, type=7) 
25% 
2.25 

summary(d) 
Min. 1st Qu. Median Mean 3rd Qu. Max. 
0.00 2.25 4.00 4.50 6.00 11.00 

ответ

2

Основываясь на идее akrun, вы можете изменить summary.default

mySummary <- summary.default 
body(mySummary)[[3]][[3]][[4]][[3]][[4]] <- 
    quote(qq <- stats::quantile(object, type = type)) 
formals(mySummary) <- c(formals(mySummary), type = 6) 

А теперь type 6 по умолчанию

args(mySummary) 
# function (object, ..., digits = max(3L, getOption("digits") - 
#  3L), type = 6) 
# NULL 
mySummary(d) 
# Min. 1st Qu. Median Mean 3rd Qu. Max. 
# 0.0  2.0  4.0  4.5  6.0 11.0 
mySummary(d, type = 7) 
# Min. 1st Qu. Median Mean 3rd Qu. Max. 
# 0.00 2.25 4.00 4.50 6.00 11.00 

И mySummary стил l сохраняет свойства объекта summary.default

attributes(mySummary(d)) 
# $names 
# [1] "Min." "1st Qu." "Median" "Mean" "3rd Qu." "Max." 
# 
# $class 
# [1] "summaryDefault" "table" 
+0

Это именно то, что мне нужно. Спасибо, и спасибо @akrun тоже. – tospig

 Смежные вопросы

  • Нет связанных вопросов^_^