【发布时间】:2014-05-30 16:06:58
【问题描述】:
我有一个使用rhdf5 包编写的hdf5 文件。 h5ls(myHDF5,all=TRUE)的输出如下:
group name otype dclass dim
0 / char5 H5I_DATASET STRING 1867124
1 / char6 H5I_DATASET STRING 1867124
2 / char7 H5I_DATASET STRING 1867124
3 / dims H5I_DATASET INTEGER 2
4 / headers H5I_DATASET STRING 212
5 / int H5I_DATASET INTEGER 233390500
6 / intorder H5I_DATASET INTEGER 125
7 / real H5I_DATASET FLOAT 156838416
8 / realorder H5I_DATASET INTEGER 84
如果我在myHDF5 文件中读取headers 对象,它是一个字符串向量,如下所示:headers<-h5read(myHDF5,"headers"),它工作正常。
但如果我尝试读取更大的字符串向量,如下所示:char5<-h5read(myHDF5,"char5") 然后 R 崩溃(R Studio 重新加载)。
较大的字符串数组char5之前存储如下:
nr<-length(char5)
mxsize<-max(nchar(char5))
h5createDataset(myHDF5,"char5",storage.mode="character",level=9,dims=nr,chunk=10000,size=mxsize)
h5write(char5,myHDF5,"char5)
而较小的字符串数组 headers 之前存储如下:
nc<-length(headers)
mxsize<-max(nchar(headers))
h5createDataset(myHDF5,"headers",storage.mode="character",level=9,dims=nc,chunk=nc,size=mxsize)
h5write(headers,myHDF5,"headers")
主要区别在于使用的chunk 大小值。我将较大字符串向量的chunk 大小更改为与dims 相同,即chunk=nr,R 仍然崩溃。
为什么可能是 R 崩溃的原因?
注意:如果我从 myHDF5 文件中读取整数或浮点数据,R 不会崩溃。
【问题讨论】:
-
直接运行 R 而不是通过 RStudio 会发生什么?
-
不幸的是同样的事情。
-
@CarlWitthoft,对不起,我对我之前的评论感到不好。我通过 RScript 直接运行 R,它运行良好(我重复了它),但 RStudio 每次都崩溃。你能帮忙吗?
-
在这种情况下,将问题发布到 RStudio 论坛。
-
@CarlWitthoft,谢谢。我就是这么做的