我正在学习post。
作者声称这是一个载体
a <- c(1,2,5.3,6,-2,4) # numeric vector
但是类函数不认为它是向量
> class(a)
[1] "numeric"
对于矩阵,一切顺利。
> a = matrix(1:6, nrow = 2, ncol = 3)
> class(a)
[1] "matrix"
那是为什么?
答案 0 :(得分:5)
R中的所有基本类型(例如numeric
,character
等)都是向量。即使是像3
这样的单个元素,实际上也是长度为1的向量。因此,"numeric"
隐含地是数字向量。
答案 1 :(得分:3)
您的a
对象是向量:
is.vector(a)
[1] TRUE
在R中,向量一词更为笼统,大多数数学家认为不是向量的许多数据对象也将被认为是这样的:
is.vector( list(a=2, b=3, list(d=4) ) )
[1] TRUE
请参阅a prior answer,以了解什么是向量,而不是向量。您可以将“向量”视为超类。实际上,属性的存在或不存在会在R中从非矢量状态切换到矢量状态。对于R矩阵对象,是导致测试失败的维度属性。
is.vector( matrix(1:4, 2,2) )
[1] FALSE
有些语言对象也可以通过is.vector测试进行验证:
is.vector( expression(a,b) )
[1] TRUE