[R] List of lists

Jim Lemon jim at bitwrit.com.au
Tue Jul 30 23:33:24 CEST 2013


On 07/30/2013 10:05 PM, mohan.radhakrishnan at 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



More information about the R-help mailing list