Elements of a real vectorspace certainly have direction, but they don't really have a magnitude. Well actually, they... kind-of have a magnitude. But for a proper magnitude, you need further structure, such as a norm or inner product. Let me explain.
Vector Spaces.
Suppose $V$ is a real vectorspace.
Definition 0. Given a vectors $x,y \in V$, we say that $x$ and $y$
have the same direction iff:
- there exists $r \in \mathbb{R}_{\geq 0}$ such that $x = ry,$ and
- there exists $r \in \mathbb{R}_{\geq 0}$ such that $y = rx$.
(The $r$'s don't have to be the same.)
This induces an equivalence relation on $V$, so we get a partitioning of $V$ into cells. Each cell is an open ray, so long as we regard $\{0\}$ as an open ray. You may wish to exclude $\{0\}$ from its privileged position as a ray, in which case you should only deal with non-zero vectors; that is, you need to be dealing with $V \setminus \{0\}$ rather than $V$.
Irrespective of which conventions are used, we can make sense of direction using these ideas:
Definition 1. The direction of $x \in V$ is the unique open ray $R \subseteq V$ such that $x \in R$.
Notice that the equivalence relation of having the same direction is preserved under scalar multiplication; what I mean is that if $v$ and $w$ have the same direction, then $av$ and $aw$ have the same direction, for any $a \in \mathbb{R}$. Geometrically, this means that if we scale a ray, we'll end up with a subset of another ray.
As for magnitude; well, if you choose a ray $R \subseteq V$, then we can partially order $R$ as follows. Given $x,y \in R$, we define that $x \geq y$ iff $x = ry$ for some $r \in \mathbb{R}_{\geq 1}$. So some vectors along this ray are longer than others, hence magnitude.
Inner Product Spaces.
Actually, this isn't the whole story. The problem with vector spaces is that if $x$ and $y$ don't belong to the same ray (nor to the the "negatives" of each others rays), then there's no way of comparing the magnitudes of $x$ and $y$. We can't say which is longer! Now there are mathematical situations where this limitation is desirable, but physically, you probably don't want this. A related issue is that you can't really make sense of angles in a (mere) vector space; at least, not without some further structure.
For this reason, when physicists say "vector", what they usually mean is "element of a finite-dimensional inner-product space." This is a (finite-dimensional) vector space $V$ with further structure; in particular, it comes equipped with a function
$$\langle-,-\rangle : V \times V \rightarrow \mathbb{R}$$
that is required to satisfy certain axioms resembling the dot product. Especially important for us is that these axioms include a "non-negativity" condition:
$$\langle x,x\rangle \geq 0$$
Using this, we can define the magnitude of vectors as follows.
Definition 2. Suppose $V$ is a real inner product space. Then the norm (or "magnitude") of $x \in V$, denoted $\|x\|$, is defined a follows:
$$\|x\| = \langle x,x\rangle^{1/2}$$
This allows us to compare the magnitudes of vectors that don't live in the same ray; we simply define that $x \geq y$ means $\|x\| \geq \|y\|.$ When confined to a single ray, this agrees with our earlier definition! Be careful though, because the relation $\geq$ we just defined is only a preorder.
In fact, the inner product gives us more than just magnitudes; it also gives angles!
Definition 3. Suppose $V$ is a real inner product space. Then the angle between of $x,y \in V$, denoted $\mathrm{ang}(x,y)$, is defined a follows:
$$\mathrm{ang}(x,y) = \cos^{-1}\left(\frac{\langle x,y\rangle}{\|x\|\|y\|}\right)$$
It can be shown that vectors $x$ and $y$ have the same direction (in the sense described at the beginning of my post) iff the angle between them is $0$. In fact, you can modify the above definition so that it defines the angle between any two non-zero open rays. In this case, it turns out that two rays are equal iff the angle between them is $0$.