Ваш a
объект является вектором:
is.vector(a)
[1] TRUE
В R термин вектор является гораздо более общим, и многие объекты данных, которые большинство математиков считают не вектором, также будут считаться такими:
is.vector( list(a=2, b=3, list(d=4) ) )
[1] TRUE
См. предыдущий ответ о том, что считается вектором, а не вектором. Вы можете думать о «векторе» как о суперклассе. Это на самом деле наличие или отсутствие атрибутов, которые переключаются из не-вектора в векторное состояние в R; в случае объектов матрицы R это атрибут измерения, который приводит к сбою теста.
is.vector( matrix(1:4, 2,2) )
[1] FALSE
И есть некоторые языковые объекты, которые также подпадают под тест is.vector:
is.vector( expression(a,b) )
[1] TRUE