服务器有网络限制,必须用离线方式去安装
HDF指一种为存储和处理大容量科学数据设计的文件格式及相应库文件。HDF最早由NCSA开发,在气象数据,高频数据存储方面应用较多。当前流行的版本是HDF5。 HDF5文件数据结构包括Datagroup和DataSet。 DataGroup:类似文件夹,可以包含多个数据集或下级群组。DataSet:类似字典,存储内容。
有什么包
R有些包可以处理hdf5,有的已经从cran仓库移除了。rhdf5可以在线安装。离线安装最后选择cran仓库的h5 package
Packages on CRAN and Bioconductor supporting the HDF5 fileformat.
Package Repository First Release Status
h5r CRAN 2011-10-23 Archived
ncdf4 CRAN 2010-02-24 Active
rgdal CRAN 2003-11-24 Active
hdf5(即h5) CRAN 2000-02-02 Archived
rhdf5 BioC > 10.5 Years Active
见https://cran.r-project.org/web/packages/h5/vignettes/h5-Intro.html
手动安装
从cran下载包手动安装,https://cran.r-project.org/web/packages/h5/index.html
依赖Rcpp和libhdf5(≥1.8.12)
1.手动安装 Rcpp https://cran.r-project.org/web/packages/Rcpp/index.html
- install.pakages("Rcpp.tar.gz",repos=NULL)
或者直接用命令行装 R CMD INSTALL Rcpp.tar.gz
2.安装libhdf5
For CentOS
yum -y install hdf5-devel
The current version is (which will get installed) 1.8.12
For Ubuntu:
sudo apt-get install libhdf5-dev
查看版本 h5cc -showconfig
3.手动安装h5
遇到问题,libhdf5镜像安装的版本比较老,是1.8.5,所以选择比较早的h5版本安装,试下来h5_0.9.1是可以的
下载h5的tar包 https://cran.r-project.org/src/contrib/Archive/h5/
R CMD INSTALL h5_0.9.1.tar.gz —enable-cxx=yes
用法
网上资料已经没有了,h5_0.9.1和在线文档用法有差异,用R命令查看文档
?h5close
看到H5File创建和dataset的赋值方式与新版本相比略有差异。
library(h5)
myfile <- H5File('test.h5','a') //创建新文件
a <- matrix(rnom(16),nrow=4,ncol=4)
myfile['data','a'] <- a //赋给‘data’ group, ‘a’ dataset
read_a <- readDataSet(myfile['data','a'])
h5close(myfile)
注意,dataset接受的类型有vector, array, matrix,存储charactor类型,数据量过大时会遇到CreateDataset paramter size not defined的错误,最好存储数值型,数值型存千万数据没有问题。