deaR useRs,
I have a very basic question. I am for putting up a real long text. But I tried
searching for some clues in the previous help posts but unfortunately, I could
get any. I have the following data called "el".
> dput(el)
structure(c(1.00451374640952, 1.88100123102175, 0.201887566680345,
0.339762002462043, 0.211735740664752, 1.29011079195732, 1.72343044727123,
2.07304062371769, 0.58596635207222, 0.994665572425113, 0.398851046368486,
1.29503487894953, 1.01025376658795, 1.00853759936143, 1.015781421492,
1.01308743805501, 1.00815844613696, 0.994069910533143, 0.993411381248545,
0.987205241627033, 0.98411214953271, 0.987005687298367, 1.01957295373665,
0.978804004390195, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), .Dim = c(12L,
3L))
you see, there are 3 columns. The first 2 columns contain actual data whereas
the third column contains the "gate numbers" for which the data is
presented in the first 2 columns. I then executed distance matrix by using the
data in the first 2 columns by using the following command
> d53<-dist(el[,1])
> d15<-d53/mean(d53)
> d54<-dist(el[,2])
> dr1<-d54/mean(d54)
> t<-as.matrix((d15)^2+(dr1)^2)
> w<-sqrt(t)
I then sorted the nearest neighbors of "gate 6" in the order of their
distance from the data of "gate 6"
> u<-matrix(sort(as.matrix(w)[6,],index.return=TRUE)$ix,ncol=1)
Finally, I plotted the entire data by giving different colors to "gate
6" (red) and its 5 nearest neighbors (green)
> plot(el[,1],el[,2])
> textxy(el[,1],el[,2],el[,3])
> points(el[,1][6],el[,2][6],col="red",pch=16)
> points(el[,1][u[2]],el[,2][u[2]],col="green",pch=16)
> points(el[,1][u[3]],el[,2][u[3]],col="green",pch=16)
> points(el[,1][u[4]],el[,2][u[4]],col="green",pch=16)
> points(el[,1][u[5]],el[,2][u[5]],col="green",pch=16)
> points(el[,1][u[6]],el[,2][u[6]],col="green",pch=16)
Afterwards I bisected the space around gate 6 into 6 sectors each covering 60
degrees.
> X1<-(el[,1])[6]
> Y1<-(el[,2])[6]
> X2<-1.5*X1
> Y2<-Y1
> base<-sqrt((X1-X2)^2+(Y1-Y2)^2)
> Hyp =base/cos(60*pi/180)
> Pre= Hyp*sin(60*pi/180)
> Y3<-Pre+Y2
> X3<-X2
> segments((X3), (Y3), (X1-base),
(Y1-Pre),type="l",col="red")
> segments((X1-base), (Y3), (X3),
(Y1-Pre),type="l",col="red")
> segments((X2), (Y2), (X1-base),
(Y1),type="l",col="red")
As you can see from the plot that the nearest neighbours of gate 6 have covered
4 (of those 6) sectors. For example, the gates 7 and 8 are covering the sector
(301 to 360 degrees), the sectors (0 to 60 degrees and 61 to 120 degrees) are
vacant so they are not counted, the sector (121 to 180 degrees) is covered by
gate 1, gate 10 covers the sector from 181 to 240 degrees, and gate 12 covers
the sector from 241 to 300 degrees. Currently, I have to manually write down
the number of sectors the nearest neighbours of each gate are covering. Is there
a command that can help me executing ONLY the TOTAL number of covered sectors
around each gate directly (4 in the current case)?
The gate 6 here is just given as an example. I have almost 3000 gates for which
I have to find the number of covered sectors by the nearest neighbours.
I hope there is a way around it. I thank-you all in advance.
Regards,
Eliza
Trinity College Dublin
[[alternative HTML version deleted]]