获取R中每个列每月5个最大值的平均值

佛罗伦萨

我有一个看起来像这样的数据框:

              ANDRITZ       VERBUND  STRABAG SE TELEKOM AUSTRIA VOESTALPINE WIENERBERGER
2009-01-29 -0.01191567  0.0252923579 -0.04838710     0.005430566  0.01360294  -0.03309218
2009-01-30  0.02922078 -0.0009725906 -0.01355932     0.037037037 -0.07072905   0.01399473
2009-02-02 -0.02140604 -0.0493849013 -0.04123711    -0.008928571  0.01834504  -0.08239956
2009-02-03  0.07460281  0.0031654408  0.01433692     0.027777778  0.01303181   0.01295607
2009-02-04  0.01221341  0.0216241299 -0.01060071    -0.004382761  0.11464245   0.08027051
2009-02-05 -0.01248942  0.0274345930 -0.02142857    -0.031548056 -0.04175153  -0.04953729 

它包含约35年的每日数据,我想获得每个列每月5个最高值的平均值。

到目前为止,我已经尝试过了:

data <- as.data.frame(xts(matrix(runif(108, -1, 1), ncol=6), 
                          order.by = seq.Date(as.Date("2009-01-24"), by = "day", length.out = 18))) #reproducible example
MAX <- apply(data, 2, function(x) order(x, decreasing = T)[1:5])
result <- unlist(lapply(1:NCOL(data), function(x) mean(data[MAX[,x],x])))

这给了我每列而不是每月5个最高值的平均值(我意识到这可能不是最有效的方法)。我尝试将其与aggregate函数结合使用,或通过使用dplyr软件包进行组合,但无法对其进行分组以获取每月5个最高值的平均值。

任何帮助将不胜感激。

K

您可以使用aggregatesorttailmean获得平均每月前5位

data$date <- format(data$date, "%Y-%m")

aggregate(. ~ date, data, function(x) mean(tail(sort(x), 5)))
#     date        X1         X2         X3        X4         X5        X6
#1 2009-01 0.4155773 -0.1588251  0.6956570 0.4914652  0.4077123 0.5147612
#2 2009-02 0.5392858  0.4840573 -0.2273043 0.3931874 -0.1614169 0.1222684

如果您想忽略NA尝试:

aggregate(. ~ date, data, function(x) {
  x <- x[!is.na(x)]
  if(length(x) > 0) {mean(tail(sort(x), 5))} else {NA}
})

数据:

set.seed(42)
data <- data.frame(date=seq.Date(as.Date("2009-01-24"), by = "day", length.out = 18), matrix(runif(108, -1, 1), ncol=6))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Phyton:如何获取按ID分组的每个列的n个最大值的平均值

来自分类Dev

获取 Bigquery 数组中 3 个最大值的平均值

来自分类Dev

Highcharts 显示图例中每个系列的最大值、最小值和平均值

来自分类Dev

获取输入的五个数字的最小值,最大值和平均值

来自分类Dev

计算R中的最小值,最大值和平均值

来自分类Dev

熊猫分组,选择3个具有最大值的元素,并取每个组的平均值

来自分类Dev

R Studio获取前5个值,后5个值等的向量的平均值

来自分类Dev

如何获取Julia中数据帧所有列的算术平均值,最小值和最大值?

来自分类Dev

猪脚本找到每个部门的工资的最大值,最小值,平均值,总和

来自分类Dev

Elasticsearch-如何获取嵌套文档集的最小值/最大值/平均值

来自分类Dev

C#从列表<对象>获取最小值,最大值和平均值

来自分类Dev

获取每个(子)列的平均值

来自分类Dev

以 1 分钟为间隔获取平均值和最大值 T-SQL

来自分类Dev

获取数组中每n个值的平均值

来自分类Dev

一次迭代中的最小值,最大值和平均值

来自分类Dev

如何显示Tableau中的最大值,最小值,中位数和平均值

来自分类Dev

从文件中读取并给出最小值、最大值和平均值的程序

来自分类Dev

Java流最大值与平均值

来自分类Dev

计算平均值而不考虑最大值

来自分类Dev

在linq中找到平均值的最大值

来自分类Dev

如何计算 QuickBase 中最大值的平均值?

来自分类Dev

求奇数序列中最大值的平均值

来自分类Dev

如何获取postgresql列中重复值的平均值?

来自分类Dev

为什么平均值大于此数组中的最大值?

来自分类Dev

在linq查询中添加最大值和平均值

来自分类Dev

遍历,找到最大值并找到java中数组的平均值

来自分类Dev

如何使用Shell查找间隔中的平均值和最大值

来自分类Dev

需要着色器中纹理的平均值和最大值

来自分类Dev

有没有一种方法可以在单个命令中获取数字列表的最小值,最大值,中位数和平均值?

Related 相关文章

  1. 1

    Phyton:如何获取按ID分组的每个列的n个最大值的平均值

  2. 2

    获取 Bigquery 数组中 3 个最大值的平均值

  3. 3

    Highcharts 显示图例中每个系列的最大值、最小值和平均值

  4. 4

    获取输入的五个数字的最小值,最大值和平均值

  5. 5

    计算R中的最小值,最大值和平均值

  6. 6

    熊猫分组,选择3个具有最大值的元素,并取每个组的平均值

  7. 7

    R Studio获取前5个值,后5个值等的向量的平均值

  8. 8

    如何获取Julia中数据帧所有列的算术平均值,最小值和最大值?

  9. 9

    猪脚本找到每个部门的工资的最大值,最小值,平均值,总和

  10. 10

    Elasticsearch-如何获取嵌套文档集的最小值/最大值/平均值

  11. 11

    C#从列表<对象>获取最小值,最大值和平均值

  12. 12

    获取每个(子)列的平均值

  13. 13

    以 1 分钟为间隔获取平均值和最大值 T-SQL

  14. 14

    获取数组中每n个值的平均值

  15. 15

    一次迭代中的最小值,最大值和平均值

  16. 16

    如何显示Tableau中的最大值,最小值,中位数和平均值

  17. 17

    从文件中读取并给出最小值、最大值和平均值的程序

  18. 18

    Java流最大值与平均值

  19. 19

    计算平均值而不考虑最大值

  20. 20

    在linq中找到平均值的最大值

  21. 21

    如何计算 QuickBase 中最大值的平均值?

  22. 22

    求奇数序列中最大值的平均值

  23. 23

    如何获取postgresql列中重复值的平均值?

  24. 24

    为什么平均值大于此数组中的最大值?

  25. 25

    在linq查询中添加最大值和平均值

  26. 26

    遍历,找到最大值并找到java中数组的平均值

  27. 27

    如何使用Shell查找间隔中的平均值和最大值

  28. 28

    需要着色器中纹理的平均值和最大值

  29. 29

    有没有一种方法可以在单个命令中获取数字列表的最小值,最大值,中位数和平均值?

热门标签

归档