如何计算数据集中最低N值的标准差?
例如,使用mtcars
数据集,我该如何为hp
执行此操作?请注意,它可能需要在多个列上执行,因此我正在寻找一个通用的过程。
sd(mtcars$hp)
最小5个值的#。
答案 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]))