# [R] how to store a vector of vectors

Duncan Murdoch murdoch.duncan at gmail.com
Sat Nov 13 14:41:57 CET 2010

```Alexx Hardt wrote:
> Hi,
> I'm trying to write a function to determine the euclidean distance
> between x (one point) and y (a set of n points). How should I pass y to
> the function? Until now, I used a matrix like that:
>
> |      [,1]  [,2]  [,3]
> [1,]      0      2      1
> [2,]      1      1      1
> |
>
> Which would pass the points (0,2,1) and (1,1,1) to that function.
>
> However, when I pass x as a normal (column) vector, the two variables
> don't match in the function. I either have to transpose x or y, or save
> a vector of vectors an other way.
>
> My question: What is the standard way to save more than one vector in R?
> (my matrix y)
> Is it just my y transposed or maybe a list or something I don't yet know?

If all vectors are of the same type and length, a matrix is probably
best.  There are some obscure situations where it is more efficient to
store them as columns rather than rows, but it rarely makes a detectable
difference, so you should choose the orientation to match the way you
plan to use the data.

I don't know how you are constructing x as a column vector.  Normally
vectors in R are neither columns nor rows: they just have a length.

So if your matrix y is as shown, y[1,] will give a plain vector that
should be the same shape as x <- c(1,2,3).

Duncan Murdoch

```