여러 파일을로드하는 스크립트를 실행 중입니다. 로드 된 파일이 50 개가되면 "모든 연결이 사용 중입니다."라는 오류 메시지가 나타납니다.read.table 연결 닫기 R
연결을 닫아야한다고 생각했지만 다음과 같은 문제가 발생했습니다.
con = file(paste('/home/rstudio/userstats/',cuserid,'.tsv',sep=""))
userstats_current = read.table(con, sep="\t", header=0, quote="", stringsAsFactors=F)
close(con)
Error in close.connection(con) : invalid connection
내가 입력 그러나 다음 모든 것이 잘 작동하는 경우 :
con = file(paste('/home/rstudio/userstats/',cuserid,'.tsv',sep=""))
close(con)
read.table이 적용될 때 뭔가 연결에 발생합니까 그리고 어떻게 이러한 연결을 닫습니다 관리 할 수 있습니까?
업데이트
감사합니다. 문제는 내가 잠시 후에 하나의 코어로도 foreach 루프를 실행할 때 모든 연결 오류가 계속 발생한다는 것입니다.
registerDoMC(2)
matrix <- foreach(i=1:nrow(sample), .combine=rbind) %dopar% {....}
가 읽 번을 EOF (파일 끝) 자동으로 닫힙니 까? open 용 문서에는 "일반적으로 연결을 사용하는 함수는 연결이 열려 있지 않은 경우 연결을 연 후 다시 닫아서 연결 열기 호출을 명시 적으로 열어 두었습니다."라고 말합니다. – Frank
명시 적으로 연결을 생성하는 대신, 파일 이름을'read.table'로 전달하지 않는 것이 어떻습니까? 일반적으로 R은 연결 자체를 닫을 정도로 똑똑합니다. –
이 파일은 1000 개의 파일과 함께 작동하므로 문제가 다른 곳 (예 : RStudio)에있는 것 같습니다. 'x <- list(); for (i in 1 : 1000) {fn <- paste0 ("z", i); 쓰기 (rnorm (5), fn); f <- 파일 (fn); x [[i]] <- read.table (f)}' –