【问题标题】:R hdf5 dataset written incorrectly?R hdf5 数据集写错了?
【发布时间】:2013-08-23 23:08:21
【问题描述】:

当我执行以下操作时,我的“预测器”数据集被正确填充:

library(rhdf5)
library(forecast)
library(sltl)
library(tseries)

fid <- H5Fcreate(output_file)
## TODO: compute the order p
p <- 4
# write predictors
h5createDataset(output_file, dataset="predictors", c(p, length(tsstl.remainder) - (p - 1)), storage.mode='double')
predictors <- as.matrix(tsstl.remainder)
for (i in 1:(p - 1)) {    
    predictors <- as.matrix(cbind(predictors, Lag(as.matrix(tsstl.remainder), i)))
}
predictors <- as.matrix(predictors[-1:-(p-1),])
head(predictors)
h5write(predictors, output_file, name="predictors")
H5Fclose(fid)

head(predictors) 的生成(正确)输出是:

            [,1]        [,2]        [,3]       [,4]
[1,]   0.3089645   6.7722063   5.1895389  5.2323261
[2,]   8.7607228   0.3089645   6.7722063  5.1895389
[3,]  -0.9411553   8.7607228   0.3089645  6.7722063
[4,] -14.1390243  -0.9411553   8.7607228  0.3089645
[5,] -26.6605296 -14.1390243  -0.9411553  8.7607228
[6,]  -8.1293076 -26.6605296 -14.1390243 -0.9411553

但是,当我阅读它时,结果不正确:

tsmatrix <- t(as.matrix(h5read(output_file, "predictors")))
head(tsmatrix)

错误输出:

            [,1]      [,2]       [,3]      [,4]
[1,]   0.3089645  8.760723 -0.9411553 -14.13902
[2,] -26.6605296 -8.129308 -9.8687675  31.52086
[3,]  54.2703126 43.902489 31.8164836  43.87957
[4,]  22.1260636 36.733055 54.7064107  56.35158
[5,]  36.3919851 25.193068 48.2244464  57.12196
[6,]  48.0585673 72.402673 68.3265518  80.18960

为什么我写的和我得到的不对应?我仔细检查了 hdfview HDF5 查看器也显示了“预测器”数据集的这个错误值。

这里有什么问题?

【问题讨论】:

  • 请提及您正在使用的所有软件包
  • 试试不带t?
  • 提供的库,其中 t 与我在 hdfview 中得到的输出完全相同,这很奇怪。
  • 您要转置吗? t 用于转置
  • 我知道t 用于转置,我想看看我在 hdfview 中看到的输出,这样做的方法是采取转置t(...) 我知道这听起来很疯狂但是这个正是问题所在:我写了一些东西,然后把完全不同的东西写进了文件中。

标签: r hdf5


【解决方案1】:

来自rhdf5 docs

请注意,数组在打开时显示为转置矩阵 使用 C 程序(h5dump 或 HDFView)。这是由于以下事实 C 上变化最快的维度是最后一个,但在 R 上是 第一个(如在 Fortran 中)。

【讨论】:

    猜你喜欢
    • 2012-03-04
    • 2018-02-22
    • 2018-04-20
    • 2016-04-04
    • 2017-09-17
    • 2020-07-31
    • 2010-12-13
    • 2015-11-28
    • 2017-03-13
    相关资源
    最近更新 更多