【问题标题】:R HydroTSM how to import precipitation data from csvR HydroTSM如何从csv导入降水数据
【发布时间】:2014-02-02 00:09:49
【问题描述】:

我是 R 编码的新手,遇到了这个问题:

我创建了一个 csv 文件,内容如下

id,精确度 1966-01-01,4.6 1966-01-02,7.9 1966-01-03,0.1 1966-01-04,6.3 1966-01-05,8.8 1966-01-06,7.5 1966-01-07,0 1966-01-08,0.5 1966-01-09,0.2

其中 id 是日期。

如何将这些数据导入 R 以用于 hydrotsm?

我正在尝试获取用于此示例的数据,但用于我自己的数据:

  1. 加载hydroTSM 库,其中包含本分析中使用的数据和函数。

    图书馆(hydroTSM)

  2. 加载意大利特伦托省圣马蒂诺迪卡斯特罗扎站的每日降水数据,并带有数据 从 1921 年 1 月 1 日到 1990 年 12 月 31 日。 数据(SanMartinoPPts)
先感谢您

【问题讨论】:

    标签: r csv data-import


    【解决方案1】:

    您应该遵循小插图 hydroTSM_Vignette.pdf。如果您在 R 提示符下键入 data(SanMartinoPPts),您会将 San Martino di Castrozza 数据加载到您的 R 会话中。

    如果您尝试加载自己的 csv 格式数据,请查看 ?read.csv。 请注意,如果您采用 San Martino 数据的前 6 行:

    SMPPts <- head(SanMartinoPPts) 
    

    并将其写入 .csv:

    write.csv(SMPPts, "SMPPts.csv")
    

    然后打开SMPPts.csv,它会是这样的:

                x
    1921-01-01  0
    1921-01-02  0
    1921-01-03  4
    1921-01-04  0
    1921-01-05  0
    1921-01-06  0
    

    这是在将时间序列数据加载到 R 之前应以 .csv 格式显示的方式,与您展示的示例相反,该示例全是由逗号和制表符分隔的一行。因为是时间序列数据,所以行名就是日期,不需要“id”。

    【讨论】:

      【解决方案2】:

      首先,您必须像这样从 Excel 中导入数据:

      Data<- read.csv("YOURFILE.CSV", header = TRUE, sep = ";",dec = "."); # Read from CSV file
      

      现在您必须创建一个 ZOO 对象,因为大多数 hydroTSM 函数都使用这个类。

      library(zoo)
      
      Datazoo<- zoo(Data[,2],Data[,1]) # Data[,2] is the values and Data[,1] is the index data
      

      【讨论】:

      • SanMartinoPPts 是一个带有"Date" 类时间索引的动物园对象。要读取问题中所示形式的 csv 文件,使用 "Date" 类时间索引创建 zoo 对象,请注意加载 hydroTSM 会自动加载 zoo,因此可以正常工作:library(hydroTSM); z &lt;- read.zoo("myfile.csv", header = TRUE, sep = ",")。阅读 ?read.zoo 并查看小插图,在动物园中阅读数据,其中提供了大量 read.zoo 示例:cran.r-project.org/web/packages/zoo/index.html
      猜你喜欢
      • 2019-02-19
      • 2021-03-29
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      • 2012-03-22
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多