There are 2 eigenvectors corresponding to 1 eigenvalue (with multiplicity 4) for the following example. However, R returns 4 distinct eigenvectors. It looks like pairs of them are approximately the same only differing in machine floating point error (epsilon). Can you please check and confirm?
> B
[,1] [,2] [,3] [,4]
[1,] 2 0 0 0
[2,] 1 2 0 0
[3,] 0 1 2 0
[4,] 0 0 1 2
> eigen(B)
$values
[1] 2 2 2 2
$vectors
[,1] [,2] [,3] [,4]
[1,] 0 0.000000e+00 0.000000e+00 8.758115e-47
[2,] 0 0.000000e+00 1.972152e-31 -1.972152e-31
[3,] 0 4.440892e-16 -4.440892e-16 4.440892e-16
[4,] 1 -1.000000e+00 1.000000e+00 -1.000000e+00