计算列中最低N值的标准偏差

时间:2016-01-11 23:06:09

标签: r ranking

如何计算数据集中最低N值的标准差?

例如,使用mtcars数据集,我该如何为hp执行此操作?请注意,它可能需要在多个列上执行,因此我正在寻找一个通用的过程。

sd(mtcars$hp)最小5个值的#。

2 个答案:

答案 0 :(得分:1)

我注意到你标记了dplyr,所以这里有一个dplyr方法:

Just cyl和mpg: summarise_each(mtcars, funs(sd(sort(.)[1:5])), cyl, mpg)

所有专栏:     summarise_each(mtcars, funs(sd(sort(.)[1:5])))

答案 1 :(得分:0)

如果要获得每列最低n值的标准差,可以执行以下操作:

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]))