리눅스 머신에 hdf5 패키지를 성공적으로 설치했습니다. 이제는 많은 수의 hdf5 파일에서 데이터를 루프로 읽고 시간 시리즈를 만들고 싶습니다. 각 hdf5 파일은 다른 시간에 해당합니다. 많은 파일을 읽은 후에 (1000 개가 넘음) R은 너무 많은 파일이 열려 있다고 말합니다. 루프를 계속할 수 있도록 닫는 방법을 찾고 싶습니다. 여기 코드는 다음과 같습니다R로로드 한 후 hdf5 파일을 닫아야합니까?
fdate <- "200605312355" # the first date for my test loop
fmax <- 1400
arr <- vector()
for (i in 1:fmax){
fname <- paste(fdate,"_.h5") # path of h5 file
fid <- hdf5load(fname) # fid = NULL
arr[i] <- somevariable$data_array[lon,lat]
# would like to close the file here
fdate <- newdate(fdate,60*5) # a function that increments the date by seconds.
}
HDF5 패키지는 물건을 정리 할 수처럼 보이는 기능 hdf5cleanup를 포함하지만, 파일 식별자가 필요합니다. 위의 코드에서 fid가 NULL을 반환합니다. 대신 hdf5cleanup (fname)과 같이 파일 이름을 삽입하면 R이 중단됩니다. 아마도 hdf5load가 파일을 닫고 실패합니다. 이 경우 system() 명령을 실행하거나 다른 방법으로 연결을 종료 할 수있는 방법이 있습니까?
우연히 showConnections()는 아무 것도 반환하지 않습니다. 글자 그대로 말 그대로 "설명 클래스 모드 텍스트 isopen은 읽을 수 있습니다."입니다.
내 짧은 질문 : hdf5load()로로드 한 후 R의 hdf5 파일에 대한 연결을 어떻게 닫을 수 있습니까?
''R'가 중단되면,'hdf5' 패키지의 관리자에게 연락해야합니다. 관리자는 파일을 닫을 때 올바른 호출을 할 수도 있습니다. –