计算列的每个组的偏度

时间:2016-06-22 13:08:16

标签: r

我有一个包含多年日常数据的文件。我想为变量计算每个月的偏斜 。我有多个文件作为data.frame。我想之前可能已经回答了类似的问题 - 答案必须出现在时刻 e1071 包中,但我无法弄明白。

R中的偏斜函数是否可以帮助我,这与下面的均值和标准偏差公式类似?:

 # take average of a column per month
 MEAN1 <- ddply(FILENAME, c("Month"), function(x) colMeans(x[c("variable1",   "variable2")]))

 #take standard deviation of all columns per month
 sd1 <- ddply(FILENAME, .(Month), colwise(sd)) 
#whereafter I delete the non-relevant columns 

我希望最终结果如下:

month variable1skewness
01 1.5
02 2.1
03 2.4
04 2.2
05 2.6
06 1.8
07 3.3
08 4.1
09 3.4
10 3.2
11 4.1
12 1.9

所有帮助表示赞赏!!感谢

1 个答案:

答案 0 :(得分:0)

tidy.data.frame中的broom方法将计算偏度,峰度和一堆其他值。

看看,例如

library(broom)
tidy(mtcars)

没有一个可重复的例子,我不得不捏造一个例子:

library(magrittr)
library(dplyr)
library(broom)

split(mtcars[, c("mpg", "gear")], mtcars$gear) %>%
  lapply(function(x) cbind(gear = x$gear[1], tidy(x))) %>%
  bind_rows() %>%
  filter(column == "mpg") %>%
  select(gear, column, mean, sd, skew, kurtosis) 

dplyr::do可能有一种更简洁的方法,但我并不聪明。