gpt4 book ai didi

r - 动物园对象聚合

转载 作者:行者123 更新时间:2023-12-04 12:36:13 25 4
gpt4 key购买 nike

亲爱的社区,

我收到的数据将在一个数据框中:

Var_1      Var_2         Date        VaR_3  VaR_4   VaR_5   Var_6
1 4 2010-01-18 7 apple 10 sweet
2 5 2010-07-19 8 orange 11 sour
3 6 2010-01-18 9 kiwi 12 juicy
... ... ... ... ... ... ...

我想使用动物园,因为它似乎是一个灵活的对象类。我刚从 R 开始,我试图阅读包的描述(小插图)。

问题:
  • 给定以上数据作为数据框,建议使用哪种方法将完整的df转换为zoo对象,告诉zoo应该使用第三列作为日期列(日期可以在数据中出现多次)?
  • 我如何每月聚合所有其他列,除了第 4 列和第 6 列使用动物园内置函数? zoo 是否能够自动丢弃分类变量而只使用那些适合聚合的列?
  • 对于第 4 列中的每个类别,我如何每月汇总所有数字列(不应包括第 6 列,因为它是非数字的)。

  • 谢谢您的支持。

    最佳答案

    zoo 对象是时间序列,通常是数字向量或矩阵。似乎您真正拥有的是一堆不同的时间序列,其中第 5 列标识了它是哪个序列。也就是说,有一个苹果系列、一个橙子系列、一个猕猴桃系列等等,每一个都有几列。

    删除最后一列,因为它不是数字,使用第三列作为索引并在第 5 列上拆分,我们有:

    # create test data
    Lines <- "Var_1 Var_2 Date VaR_3 VaR_4 VaR_5 Var_6
    1 4 2010-01-18 7 apple 10 sweet
    2 5 2010-07-19 8 orange 11 sour
    3 6 2010-01-18 9 kiwi 12 juicy"
    cat(Lines, "\n", file = "data.txt")

    library(zoo)
    z <- read.zoo("data.txt", header = TRUE, index = 3, split = "VaR_5",
    colClasses = c(Var_6 = "NULL"))

    结果是:
    > z
    Var_1.apple Var_2.apple VaR_3.apple VaR_5.apple Var_1.kiwi
    2010-01-18 1 4 7 10 3
    2010-07-19 NA NA NA NA NA
    Var_2.kiwi VaR_3.kiwi VaR_5.kiwi Var_1.orange Var_2.orange
    2010-01-18 6 9 12 NA NA
    2010-07-19 NA NA NA 2 5
    VaR_3.orange VaR_5.orange
    2010-01-18 NA NA
    2010-07-19 8 11

    以上假设对于第 5 列的给定值,日期是唯一的。如果不是这种情况,则包括 aggregate = mean aggregate 的参数或其他值.

    现在将其汇总为每月动物园系列,我们有:
    aggregate(z, as.yearmon, mean)

    也可以使用 FUN = as.yearmon 直接将其转换为每月争论:
    zm <- read.zoo("data.txt", header = TRUE, index = "Date", split = "VaR_4", 
    FUN = as.yearmon, colClasses = c(Var_6 = "NULL"), aggregate = mean)

    ?read.zoo , vignette("zoo-read") , ?aggregate.zoo以及其他小插图和帮助文件。

    关于r - 动物园对象聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7874773/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com