2014-03-15 2 views
0

Я относительно новый пользователь R. У меня возникают проблемы с извлечением одного файла из нескольких файлов HDF5. Это то, что я сделал с помощью rhdf5 пакета:HDF5 группировка/извлечение одного и того же слоя данных из всех файлов в группе в R

files <- list.files(pattern = ".he5",full.names=TRUE) 

Файла не могу извлечь из всех HDF5 файлы имеют расширение

"/HDFEOS/SWATHS/ColumnAmountNO2/Data Fields/ColumnAmountNO2Trop" 

Когда я запускаю команду ниже для отдельных файлов, это работы:

NO2he5<-h5read("MA.he5","/HDFEOS/SWATHS/ColumnAmountNO2/Data Fields/ColumnAmountNO2Trop") 

Как перевести это на функцию, которая может извлечь слой одновременно для нескольких файлов hdf5, пожалуйста?

ответ

1

См lapply:

library(rhdf5) 
files <- list.files(pattern = ".he5", full.names = TRUE) 
attribute <- "/HDFEOS/SWATHS/ColumnAmountNO2/Data Fields/ColumnAmountNO2Trop" 
out.list <- lapply(files, h5read, attribute) 

Это будет хранить все чтения объектов в единый объект: список. Это предпочтительный подход к созданию как можно большего количества объектов, таких как файлы.

+0

Привет, flodel, я просто запустил его, и он вернулся с сообщением об ошибке ниже: Ошибка в match.fun (FUN): объект 'h5read' не найден. Я попробовал это с приложением, и по какой-то причине его не рассматривают в качестве команды. Что может быть неправильным? –

+0

Вам нужно загрузить функцию с помощью 'library (rhdf5)', прежде чем вызывать ее через 'lapply'. Пожалуйста, попробуйте еще раз. – flodel

+0

Спасибо, Flodel. Я узнал, что я открываю слишком много пакетов сразу, вызывая конфликт. Я загрузил только библиотеку rhdf5, и он работал хорошо. –

Смежные вопросы