[R] Selecting single TAZ based on area proportion

ROLL Josh F JRoll at lcog.org
Thu Feb 11 01:53:19 CET 2010


It dopes appear that this code works but entering a NA into the TAZ values goofs things up.  Any ideas of how to remedy this problem? 

-----Original Message-----
From: Nikhil Kaza [mailto:nikhil.list at gmail.com] 
Sent: Monday, February 08, 2010 4:51 PM
To: ROLL Josh F
Cc: r-help at r-project.org
Subject: Re: [R] Selecting single TAZ based on area proportion


try this
t <- TazProperties..
v <- aggregate(t$Area, by=list(t$TAZ,t$Props), sum)
names(v) <- c("TAZ", "Prop", "area")
tapply(v$area, v$Prop, function(x) v$TAZ[which.max(x)])

note that you have to deal with the cases where there is a tie for the maximum. The above just returns the first maximum.

Nikhil



On Feb 8, 2010, at 1:14 PM, LCOG1 wrote:

>
> Good day all,
>   I am having an issue coercing my data.  Below i have some data on 
> taxlots and an associated TAZ(transportation analsysi zone) that each 
> property is within.  The main issue is that some properties cross TAZ 
> boundaries so i need to make a decision as to which TAZ the property 
> belongs too, i would like to do this based on the area of the Property 
> and ultimately assign the the property to the TAZ in which the 
> majority or the most of the area is within.  For instance in the data 
> below:
>
> Property  p754921  is in two TAZs, 38 and 37.  Since the property is 
> mostly in 37 i would like to assign this value to the list of
> properties(Props) so
> that
>
> MultiTazProperties_ goes from
>
> $p754921
> [1] 38 37 37
>
> $p75506
> [1] 171 171 282 171
>
> $p75508
> [1]  46  46 169 169 169
>
> to....
>
> $p754921
> [1]  37
>
> $p75506
> [1] 282
>
> $p75508
> [1]  46
>
>     Props    TAZ       Area
> 1  p754921  38 109828.040
> 2  p754921  37 128134.710
> 3  p754921  37  46469.570
> 4   p75506 171  37160.210
> 5   p75506 171  40080.500
> 6   p75506 282 344679.660
> 7   p75506 171  16972.280
> 8   p75508  46 342309.558
> 9   p75508  46 260906.870
> 10  p75508 169  17014.659
> 11  p75508 169   7285.706
> 12  p75508 169  10936.316
>>
>
>
> #Data to use
> Props<-c("p754921","p754921" ,"p754921","p75506" ,"p75506"
> ,"p75506","p75506"
> ,"p75508","p75508","p75508","p75508","p75508")
> TAZ<-c(38,37,37,171,171,282,171,46,46,169,169,169)
> Area<-c(109828.04,  128134.71,   46469.57, 37160.21,
> 40080.50,344679.66,16972.28,
> 342309.558, 260906.870,  17014.659,   7285.706,  10936.316)
>
> TazProperties..<-data.frame(Props,TAZ,Area)
>
> MultiTazProperties_<-tapply(TAZ , Props, function(x) x) 
> MultiTazArea_<-tapply(Area , Props, function(x) x)
>
> Hope my inquiry is clear.  Thanks
> --
> View this message in context: 
> http://n4.nabble.com/Selecting-single-TAZ-based-on-area-proportion-tp1
> 473288p1473288.html Sent from the R help mailing list archive at 
> Nabble.com.
>
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list