[R] how to convert list of matrix (raster:extract o/p) to data table with additional colums (polygon Id, class)

akjha akjha at iirs.gov.in
Wed Jun 27 07:57:02 CEST 2012


Hi List,
I have a raster and a polygon with attribute ID and Class.
I want to have the fraction of each class present in each pixel of raster. I
have use the raster::extract to get the value and weights as below.
ex<-extract(raster,polygon,weighted=TRUE)
this gives me
[[1]] 
 value     weight
 13943   0.24
 13958   0.02
 13959   0.84
 13960   0.19
 13987   0.03
 13988   0.31
 13990   0.30
[[2]]
 value     weight
 13943   0.74
 13958   0.22
 13959   0.16
 13960   0.80
 13987   0.95
 13988   0.50
 13990   0.30
[[3]] 
 value     weight
 13988   0.19
 13990   0.40
.........
I want the output in the format as data table. 

 value     weight  ID  Class
 13943   0.24      1        BU
 13958   0.02      1        BU
 13959   0.84      1        BU
 13960   0.19      1        BU
 13987   0.03      1        BU
 13988   0.31      1        BU
 13990   0.30      1        BU
 13943   0.74      2        AG
 13958   0.22      2        AG
 13959   0.16      2        AG
 13960   0.80      2        AG
 13987   0.95      2       AG
 13988   0.50      2       AG
 13990   0.30      2       AG
 13988   0.50      3       BU
 13990   0.30      3       BU

To do this I have down following 

makeDtbl<- function(x,class,id='NA') {
		if(!is.null(x))
			data.table(x,y,z)  
	}
inputClass<-as.character(inputShape at data$CLASS)
id<-as.character(inputShape at data$ID)
kc<-mapply(makeDtbl,ex,inputClass,id)

I got kc as
                    [,1]                                     [,2]                                   
[,3]
value       Numeric,7                       Numeric,7                     
Numeric,2   .............................
weight    Numeric,7                       Numeric,7                      
Numeric,2   ........................
class        Character,7                     Character,7                   
Character,2 ....................
id              Character,7                       Character,7                   
Character,2 ....................

Now i want to convert it in a table as above. 
how to do this? 


Thanks for your suggestion

AKJ

--
View this message in context: http://r.789695.n4.nabble.com/how-to-convert-list-of-matrix-raster-extract-o-p-to-data-table-with-additional-colums-polygon-Id-cla-tp4634579.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list