Hello list, I need to keep track of objects that are related to particular observations. In this case, I need to keep track of polygons that are associated with observations. What I would ideally have is one column of a dataframe hold a "polygonal" object (from the spatstat package). My question: I seem to have managed to do it, but as I haven't read that dataframes are supposed to be able to hold list elements or objects this way, I wanted to ask if I'm violating things here in a way such that my code may break in future R releases. (that is, am i relying on non-guaranteed behavior). My other option is to created a named list or something along those lines, and just match() the dataframe and named list when i need access to the related objects. Please see below for the code. Thoughts and suggestions are greatly appreciated!
By tinkering around, I've found that dataframe columns do seem to be able to hold list elements: a=data.frame(i=c(1,2),j=c(3,4)) z=list(x=c(1,2,3)) a$k=NA a[1,]$k=z > str(a) 'data.frame': 2 obs. of 3 variables: $ i: num 1 2 $ j: num 3 4 $ k:List of 2 ..$ : num 1 2 3 ..$ : logi NA Extending that behavior, I can attach "polygonal" objects to dataframes it seems: library(spatstat) a=data.frame( a=c(1,2), b=c(3,4) ) a$polygons=NA a[1,]$polygons = list(disc(radius=50)) > str(a) 'data.frame': 2 obs. of 3 variables: $ a : num 1 2 $ b : num 3 4 $ polygons:List of 2 ..$ :List of 5 .. ..$ type : chr "polygonal" .. ..$ xrange: num -50 50 .. ..$ yrange: num -50 50 .. ..$ bdry :List of 1 .. .. ..$ :List of 4 .. .. .. ..$ x : num 50 49.9 49.8 49.5 49 ... .. .. .. ..$ y : num 0 2.45 4.9 7.34 9.75 ... .. .. .. ..$ area: num 7851 .. .. .. ..$ hole: logi FALSE .. ..$ units :List of 3 .. .. ..$ singular : chr "unit" .. .. ..$ plural : chr "units" .. .. ..$ multiplier: num 1 .. .. ..- attr(*, "class")= chr "units" .. ..- attr(*, "class")= chr "owin" ..$ : logi NA > area.owin(a[1,]$polygons[[1]]) [1] 7850.828 thanks, allie ______________________________________________ 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.