0

我正在使用 rhdf5 库。我想一次读取很多文件。我在文件夹输入中有我的 .h5 文件,然后我正在尝试:

filenames <- list.files("input", pattern="*.h5", full.names=TRUE)
read_h5<- function(file) {h5read(file, "/datasets/data1/data0")}
for (i in 1:length(filenames)) {
   read_h5(filenames[i])
}

它没有显示任何错误。只是我执行它,没有任何反应。我也试过lapply(filenames,h5read(filenames,name="/datasets/data1/data0"),.GlobalEnv)

但在这里我收到一个错误:“条件的长度> 1,只会使用第一个元素”。

为什么它不起作用?

4

1 回答 1

0

如果有人会遇到类似的问题,我将与您分享我是如何处理这个问题的。不幸的是,我不得不稍微改变一下我的尝试。

我在 R 中的脚本如下所示(test.R):

library(rhdf5)
args <- commandArgs(trailingOnly = TRUE)
filename <- args[1]
output<-args[2]
my_data<-h5read(filename, "/datasets/data1/data0")
write.table(my_data, file=output, row.names=FALSE, col.names=FALSE)

后来,我写了一个bash脚本:

#!/bin/bash

for file in input/*.h5; do 
    [ -f "$file" ] || continue
    beg="${file%%.*}";
    Rscript test.R "$file" "$beg".txt
done

这对我有用!

于 2017-08-08T13:04:00.397 回答