On 07/30/2013 10:05 PM, mohan.radhakrish...@polarisft.com wrote:

Hi,
                I am creating a list of 2 lists, one containing filenames
and the other file descriptors.  When I retrieve them I am  unable to close
the file descriptor.

I am getting this error when I try to call close(filedescriptors
[[2]][[1]]).

Error in UseMethod("close") :
   no applicable method for 'close' applied to an object of class "c
('integer', 'numeric')"

print(filedescriptors[[2]][[1]]) seems to be printing individual elements.

Thanks,
Mohan

filelist.array<- function(n){
   cpufile<- list()
   cpufiledescriptors<- list()
   length(cpufile)<- n
   for (i in 1:n) {
     cpufile[[i]]<- paste("output", i, ".txt", sep = "")
        cpufiledescriptors[[i]]<-file( cpufile[[i]], "a" )
   }
     listoffiles<- list(cpufile=cpufile,
cpufiledescriptors=cpufiledescriptors)
        return (listoffiles)
}



#Test function

test.filelist.array<- function() {
        filedescriptors<- filelist.array(3)
     print(filedescriptors[[2]][[1]])
     print(filedescriptors[[2]][[2]])
     print(filedescriptors[[2]][[3]])

}


Hi Mohan,
When you have opened connections as above, you need to pass the connection, not just one element, to "close":

close(listoffiles$cpufiledescriptors[[1]])

Jim

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to