Making sense of angles in $\mathbb{R^n}$ One of the definitions of the dot product of two vectors is the following
$$\vec{a} \bullet \vec{b}\ \  \stackrel{\text{def}}{=} \ \ \|\vec{a}\| \,\|\vec{b}\|\cos(\theta)$$
Where $\theta$ denotes the angle between the vectors $\vec{a}$ and $\vec{b}$. But for that angle $\theta$ to 'make sense', both $\vec{a}$ and $\vec{b}$ must lie in the same plane correct? i.e. There must exist some two-dimensional space, e.g. $\mathbb{R^2}$, that both $\vec{a}$ and $\vec{b}$ are an element of.
Now we can always find a plane that both $\vec{a}$ and $\vec{b}$ fall in. But now the question arises, are we finding the angle $\theta$ with respect to the plane that they lie in (what I'm trying to say is: Is $\theta$ denoting the angle between $\vec{a}$ and $\vec{b}$ in a plane that they both fall in?), or is it with respect to the basis vectors of of the original vector space that they lie in initially.
Here's an example that will hopefully get across what I'm asking:
Take $\vec{a}, \vec{b} \in \mathbb{R^4}$.
If we can find a plane that both $\vec{a}$ and $\vec{b}$ both lie in, then 'the angle between them', $\theta$, makes sense. If not then what essentially is being said is $\theta$ is the angle between two vectors in four-dimensional space, and I'm not sure that an angle in $\mathbb{R^4}$ has any sort of meaning.
My question then essentially boils down to the following. 


*

*Are angles only defined (or do they only have meaning) in $\mathbb{R^2}$?

*If we have two vectors in $\mathbb{R^n}$, is the only way to find the 'angle between them' by first finding a plane (a two-dimensional vector space) that they both lie in, and then solving for the angle with respect to that plane?

 A: Yes, $\theta$ is the angle with respect to the plane containing $\vec a$ and $\vec b$. If $\vec a$ and $\vec b$ are non-zero, this plane is unique unless $\vec b$ is a multiple of $\vec a$ (in which case $\theta=0$). So $\theta$ is well-defined.
But another approach is to define the dot product of vectors $\vec{a}=(a_1,\ldots,a_n)$ and $\vec{a}=(a_1,\ldots,a_n)$ as
$$\vec{a} \bullet \vec{b} = \sum_{i=1}^na_ib_i$$
Then you can define the angle between then as
$$\theta = \arccos \left(\frac{\vec{a} \bullet \vec{b}}{|\vec a||\vec b|}\right)$$
This gives you the same answer as finding a plane containing $\vec a$ and $\vec b$ and then finding the angle with respect to that plane.
So to answer your two questions:

Are angles only defined (or do they only have meaning) in $\mathbb R^2$?

That is really up to which definition of 'angle' you prefer.

If we have two vectors, is the only way to find the 'angle between them' by first finding a plane that they both lie in, and then solving for the angle with respect to that plane?

No. Usually a much simpler method is to calculate the dot product and use the second formula above.
A: Whatever the (finite) dimension is, two non-zero vectors $\vec{a}$ and $\vec {b}$ define a plane of equation $\vec v=\lambda\vec a+\mu\vec b$. In this plane is defined the angle $\theta$ by your equation $\vec{a} \bullet \vec{b}\ \  \stackrel{\text{def}}{=} \ \ ||\vec{a}||||\vec{b}||\cos(\theta)$
If the vectors are colinear you don't have a plan but you have $\cos (\theta)=1$ so $\theta =0$.
(in infinite dimension you have still this when the space is Hilbert with a scalar product).
A: As long as you are not considering oriented angles (i.e., you don't mind if one is "turning to the left" or "turning to the right", in some sense), there is nothing special about $\Bbb R^2$: angles can be defined in any $\Bbb R^n$, indeed in any real inner product space. This is because the dot product can be defined in a purely algebraic way (sum of all the products of corresponding coordinates), and then you first equation can serve as definition of angle between any pair of nonzero vectors (the fact that some real $\phi$ making the equation hold can be found is a direct consequence of the Cauchy-Schwarz inequality). Usually one takes the solution for $\theta$ that lies in the interval $[0,\pi]$ to be the angle; notably, as this method only computes the cosine of the angle, it cannot really tell opposite angles apart, and we choose the angle to be positive by definition.
As for computing the angle "in the plane spanned by $\vec a$ and $\vec b$" (assuming they are not scalar multiples of one another), it is not quite clear what you mean by that, but in any case when made precise it should end up giving the same answer as the other method, or possibly the opposite angle. Assuming you know about angles in $\Bbb R^2$, one way to do this is to choose an orthonormal pair of vectors in the span of $\vec a,\vec b$, and use those to identify that span with $\Bbb R^2$. One easily shows that "usual way" to define angles in $\Bbb R^2$ gives an angle of the same magnitude as using the method above, though depending on what is the "usual way", it might distinguish positive and negative angles of the same magnitude (since in $\Bbb R^2$ "turning left" and "turning right" are things that can be clearly distinguished, unlike the situation in higher dimensions). Since the dot product of $\vec a,\vec b$ is unchanged under the identification of the span with $\Bbb R^2$, the "cosine" method gives the same result in $\Bbb R^n$ as after restriction to $\Bbb R^2$, and so in magnitude the same angle as taking the "usual angle" in the span of $\vec a,\vec b$.
In particular this way of determining the angle does not depend on the choice of orthonormal vectors in the span, except possibly for the sign. And indeed, if one does define an angle with sign in $\Bbb R^2$, then that angle does depend on the choice of orthonormal vectors. It is for this reason that in higher dimensions no "oriented angle" can be defined in a coherent way.
