Получить статистику R Boxplot без рисования boxplot

#r #statistics #correlation #boxplot

#r #Статистика #корреляция #boxplot

Вопрос:

Я хотел бы сгенерировать статистику boxplot (усы, медиана), которую я использую для получения сходства между двумя векторами, но без создания самого boxplot.

Позвольте мне лучше объяснить себя через мой код:

 while(...){

doubleplot <- boxplot(real$dist, result$dist, names=c(paste("Loops (",length(real),")", sep=""),paste("Peak pairs (", length(result), ")",sep="")), ylab="Loop width", cex.lab=1.3, cex.axis=1.3, main="Candidate for negative loops", cex.main=1.5)
correl <- cor(doubleplot$stats[,1],doubleplot$stats[,2])

if(correl>max_correl){
    max_correl <- correl
    best_plot_data <- doubleplot
}

}
  

Очевидно, что, поскольку мы генерируем статистику boxplot в цикле while (иногда более 100 графиков), для фактического рисования графиков требуется очень много ресурсов. Мне нужна статистика без самого графика. Какой-то boxplot(..., hidden=TRUE)

Комментарии:

1. Ответ, предоставленный Томасом, будет работать.. Вы можете заранее рассчитать корреляцию, чтобы знать, какой график строить..

2. boxplot(..., plot = FALSE)

Ответ №1:

Вы можете использовать boxplot.stats() . Он возвращает список, в котором находится один из элементов $stats , и вы можете получить доступ к тому, что вам нужно.

Например

 set.seed(1234)
x = rnorm(100)

boxplot.stats(x)

# $stats
# [1] -2.3456977 -0.9006166 -0.3846280  0.4828227  2.5489911

# $n
# [1] 100

# $conf
# [1] -0.6032114 -0.1660445

# $out
# numeric(0)
  

Для получения дополнительной информации вы можете посмотреть ?boxplot.stats()