[R] Question on output of vectors from a for loop into a matrix
Dylan Beaudette
dylan.beaudette at gmail.com
Fri Aug 17 03:15:57 CEST 2007
On Thursday 16 August 2007 15:35, Ryan Briscoe Runquist wrote:
> Hello R-help,
>
> I am a recent convert to R from SAS and I am having some difficulty with
> output of a for loop into a matrix. I have searched the help manuals and
> the archives, but I can't get my code to work. It is probably a syntax
> error that I am not spotting. I am trying to make a distance matrix by
> extracting the distances from each point to all others in a vector (the for
> loop). I can get them all to print and can save each individually to a
> file, but I cannot get them to be bound into a matrix.
>
> Here is the code that I have tried:
>
> m<-length(Day.1.flower.coords$x) #31 grid points
>
> output.matix<-matrix(0.0,m,m)
> for(i in 1:m){
> dist<-spDistsN1(Day.1.coords.matrix, Day.1.coords.matrix[i,])
> dist<-as.vector(dist)
> output.matrix[i,]<-dist
> print(dist)}
>
> The error message that I get is:
>
> Error in output.matrix[i,] <- dist : incorrect number of subscripts on
> matrix
>
> Thanks for your help.
>
> Ryan
>
> ~~~~~~~~~~~~~~~~~~
> Ryan D. Briscoe Runquist
> Population Biology Graduate Group
> University of California, Davis
> rdbriscoe at ucdavis.edu
>
Hi Bryan, for all UCD students you have the luxury of not using a loop! :)
Would something like this work - for the creation of a 'distance matrix' :
# example dataset: 2 x 2 grid
d <- expand.grid(x=1:2, y=1:2)
# an instructive plot
plot(d, type='n')
text(d, rownames(d))
# create distance object and convert to matrix:
m <- as.matrix(dist(d))
m
1 2 3 4
1 0.000000 1.000000 1.000000 1.414214
2 1.000000 0.000000 1.414214 1.000000
3 1.000000 1.414214 0.000000 1.000000
4 1.414214 1.000000 1.000000 0.000000
# is that the kind of distance matrix you are looking for :
?dist
Distance Matrix Computation
Description:
This function computes and returns the distance matrix computed by
using the specified distance measure to compute the distances
between the rows of a data matrix.
[...]
cheers,
Dylan
> ______________________________________________
> R-help at stat.math.ethz.ch 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.
--
Dylan Beaudette
Soils and Biogeochemistry Graduate Group
University of California at Davis
530.754.7341
More information about the R-help
mailing list