我有一个hdf5格式的文件.我知道它应该是一个矩阵,但我想阅读那个矩阵,R以便我可以研究它.我看到有一个h5r软件包可以帮助解决这个问题,但是我没有看到任何简单的阅读/理解教程.这样的教程是否可在线获取.具体来说,如何hdf5使用此包读取对象,以及如何实际提取矩阵?
UPDATE
我发现了一个rhdf5不属于CRAN但属于BioConductoR的软件包.界面相对容易理解文档和示例代码非常清楚.我可以毫无问题地使用它.我的问题似乎是输入文件.我想要读取的矩阵实际上存储在hdf5文件中python pickle.因此,每当我尝试打开它并通过R我获得它来访问它segmentation fault.我确实弄清楚如何将矩阵从内部保存python为tsv文件,现在问题得以解决.
Mik*_*e T 42
rhdf5虽然它不在CRAN中,但该包的效果非常好.从Bioconductor安装它
source("http://bioconductor.org/biocLite.R")
biocLite("rhdf5")
Run Code Online (Sandbox Code Playgroud)
并使用它:
library(rhdf5)
Run Code Online (Sandbox Code Playgroud)
列出文件中的对象以查找要读取的数据组:
h5ls("path/to/file.h5")
Run Code Online (Sandbox Code Playgroud)
阅读HDF5数据:
mydata <- h5read("path/to/file.h5", "/mygroup/mydata")
Run Code Online (Sandbox Code Playgroud)
并检查结构:
str(mydata)
Run Code Online (Sandbox Code Playgroud)
(请注意,多维数组可能会出现转置).您还可以读取组,这些组将在R中命名为列表.
use*_*626 20
你也可以使用h5,我最近在CRAN上发布的一个包.相比rhdf5它具有以下特点:
readdata <- dataset[1:3, 1:3]
dataset[1:3, 1:3] <- matrix(1:9, nrow = 3)
要保存矩阵,您可以使用:
library(h5)
testmat <- matrix(rnorm(120), ncol = 3)
# Create HDF5 File
file <- h5file("test.h5")
# Save matrix to file in group 'testgroup' and datasetname 'testmat'
file["testgroup", "testmat"] <- testmat
# Close file
h5close(file)
Run Code Online (Sandbox Code Playgroud)
...并将整个矩阵读回R:
file <- h5file("test.h5")
testmat_in <- file["testgroup", "testmat"][]
h5close(file)
Run Code Online (Sandbox Code Playgroud)
另见h5