2016-01-11 2 views
0

Как рассчитать стандартное отклонение наименьших значений N в наборе данных?Вычислить стандартное отклонение наименьших значений N в столбце

Например, используя набор данных mtcars, как бы это сделать, скажем, hp? Обратите внимание, что это может потребоваться для нескольких столбцов, поэтому я ищу обобщенный процесс.

sd(mtcars$hp) # наименьших 5 значений.

+0

'сд (сорт (mtcars $ л.с.) [ 1: 5]) ' – DatamineR

+0

' sd (head (mtcars $ hp [order (mtcars $ hp)], 5)) ' – mts

+1

' sd (head (sort.int (mtcars $ hp, partial = 1: 5), 5)) 'для максимальной эффективности –

ответ

0

Если вы хотите, чтобы получить стандартное отклонение низких значений п каждого столбца, вы можете сделать следующее:

sapply(mtcars, function(x) if(is.numeric(x)) sd(sort(x)[1:5])) 

Если вы хотите сделать это для топ-5 значений каждого столбца, вы можете сделать следующее:

sapply(mtcars, function(x) if(is.numeric(x)) sd(sort(x, decreasing = TRUE)[1:5])) 

Если вы хотите сделать это только для избранных столбцов, вы можете сделать это:

sapply(mtcars[, c('mpg', 'wt', 'hp')], function(x) if(is.numeric(x)) sd(sort(x, decreasing = TRUE)[1:5])) 
1

Я заметил, что ты меченый dplyr, так вот dplyr способ сделать это:

Просто цил и мили на галлон: summarise_each(mtcars, funs(sd(sort(.)[1:5])), cyl, mpg)

Все столбцы: summarise_each(mtcars, funs(sd(sort(.)[1:5])))

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