r - 在R中按年份计算偏斜和峰度
问题描述
我有一个看起来像这样的表:
start_table <- data.frame("Water_Year" = c("1903", "1903", "1904", "1904"), "X" = c(13, 11, 12,
15), "Day" = c(1, 2, 1, 2))
(“天”列不参与我的偏斜峰度计算,它只是在我的表中)
我想要一个计算按年份分组的偏斜和峰度值的表:
end_table <- data.frame("Water_Year" = c("1903", "1904"), "Skew" = c("skew_number_here",
"skew_number_here"), "Kurtosis" = c("kurtosis_number_here", "kurtosis_number_here"))
我不知道如何按年份对其进行分组以执行这些计算。
解决方案
您还可以定义偏度/峰度函数:
kurtosis <- function(x) {
m4 <- mean((x - mean(x))^4)
kurtosis <- m4/(sd(x)^4) - 3
kurtosis
}
skewness <- function(x) {
m3 <- mean((x - mean(x))^3)
skewness <- m3/(sd(x)^3)
skewness
}
然后,将其应用于base R
:
aggregate(X ~ Water_Year,
FUN = function(x) c(kurtosis = kurtosis(x), skewness = skewness(x)),
data = start_table)
Water_Year X.kurtosis X.skewness
1 1903 -2.75 0.00
2 1904 -2.75 0.00
推荐阅读
- php - 自动完成不适用于 JSON 文件
- javascript - Firebase 存储:如何将图像 url 存储为对象属性?
- java - SpringBoot - 你好世界
- c++ - gcc 中 cl /NODEFAULTLIB 的替代方法是什么
- c - 为什么在通过命令提示符编译 C 程序时没有创建 *.o (object) 文件?
- php - 使用 strtotime 从 xpath 转换日期,但不断获得纪元
- javascript - 未定义索引错误php(提交标签未在mysql表中输入信息)
- r - R中的pkstwo错误
- python - Anaconda 不安装导航器
- c# - 映射 hbm 文件时出现错误“命名空间中的元素 'class' 具有无效的子元素 'set'”