【问题标题】:Using zoo package使用动物园包
【发布时间】:2018-08-06 10:11:28
【问题描述】:

请帮忙!
我有一个包含 4 列的 .csv 文件:日期、VBLTX、FMAGX 和 SBUX。后三栏是一些股票的调整收盘价。日期列是从 1998 年 1 月到 2009 年 12 月的月份。这是前几行:

Date      |VBLTX      |FMAGX        |SBUX  
1/01/1998 |4.36       |44.38        |4.3  
1/02/1998 |4.34       |47.74        |4.66  
1/03/1998 |4.35       |47.74        |5.33

我正在尝试将它作为一个动物园对象读入 R,它应该如下所示:

         |VBLTX      |FMAGX        |SBUX  
Jan 1998 |4.36       |44.38        |4.3  
Feb 1998 |4.34       |47.74        |4.66  
Mar 1998 |4.35       |47.74        |5.33

我不知道如何使这项工作。我目前正在使用这行代码:

all_prices <- read.zoo("all_prices.csv", FUN = identity)

这就产生了这个动物园系列:

         |V2         |V3           |V4  
Apr-00   |4.63       |73.15        |7.12  
Apr-01   |5.22       |63.05        |9.11  
Apr-02   |5.71       |53.88        |10.74

它似乎按字母顺序而不是按日期对 csv 文件进行了排序。此外,如果我滚动浏览动物园系列,则有一行是 csv 文件中的列名。

任何帮助将不胜感激

谢谢!

【问题讨论】:

    标签: r zoo


    【解决方案1】:

    如果您“不知道”如何使用命令,请仔细阅读它的帮助文件——在本例中为 ?read.zoo。 Zoo 中还有一个小插曲,完全致力于 read.zoo 示例:vignette("zoo-read")。在这里查看?yearmon 也会很有用。

    假设输入文件在最后的注释中可重现地显示,而不是在问题中显示,它不应该有 .csv 扩展名,因为它不是 csv 文件;但是,忽略我们有以下内容。

    header = TRUE 表示第一行是标题,FUN = as.yearmon 表示我们要将第一列转换为yearmon 类时间索引,format 指定其格式(使用在?strptime 中定义的百分比代码)。

    library(zoo)
    
    read.zoo("all_prices.csv", header = TRUE, FUN = as.yearmon, format = "%d/%m/%Y")
    

    给予:

             VBLTX FMAGX SBUX
    Jan 1998  4.36 44.38 4.30
    Feb 1998  4.34 47.74 4.66
    Mar 1998  4.35 47.74 5.33
    

    注意

    Lines <- "
    Date      VBLTX      FMAGX        SBUX  
    1/01/1998 4.36       44.38        4.3  
    1/02/1998 4.34       47.74        4.66  
    1/03/1998 4.35       47.74        5.33
    "
    cat(Lines, file = "all_prices.csv")
    

    【讨论】:

      猜你喜欢
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      相关资源
      最近更新 更多