R中矢量的定义

时间:2015-01-22 07:49:21

标签: r vector

我了解到a vector is a sequence of data elements of the same basic type.然后我们会在下面的代码中调用a(因为它包含数字和字符):

a = c(1,"b")
is.vector(a)
[1] TRUE

矢量错误的定义是什么?我提到this tutorial.

2 个答案:

答案 0 :(得分:6)

本教程简化并可能导致混淆。它的定义描述了“基本矢量类型”,但也有“通用矢量”。

来自language definition(你应该研究):

  

2.1.1载体

     

可以将载体视为包含数据的连续细胞。细胞   通过索引操作,如x [5]访问。更多细节   在索引中给出。

     

R有六种基本('原子')矢量类型:逻辑,整数,真实,   复杂,字符串(或字符)和原始。模式和存储模式   对于不同的矢量类型,请参见下表。

typeof    mode      storage.mode 
logical   logical   logical
integer   numeric   integer 
double    numeric   double 
complex   complex   complex
character character character 
raw       raw       raw 
  

单个数字,例如4.2,   和字符串,如“四点二”仍是向量,长度为1;   没有更基本的类型。长度为零的矢量是可能的   (并且很有用)。

     

2.1.2列表

     

列表(“通用向量”)是另一种数据存储。列表有   元素,每个元素都可以包含任何类型的R.   对象,即列表的元素不必相同   类型。列表元素通过三种不同的索引进行访问   操作。这些在索引中有详细解释。

     

列表是向量,基本向量类型称为   原子向量,其中有必要排除列表。

来自help("is.vector")

  

如果mode =“any”,则is.vector可以为原子模式list返回TRUE   和表达。对于任何模式,如果x有任何模式,它将返回FALSE   除名称外的属性。 [...]

expression基本上是list。)

  

请注意,因素不是矢量; is.vector返回FALSE,as.vector将一个因子转换为mode =“any”的字符向量。

最后,正如@Henrik指出的那样,c强制所有相同类型的参数。

答案 1 :(得分:0)

实际上,在你的例子中," 1"将被视为R的角色。

  

A< -C(1" B&#34)   typeof运算(一个[1])   [1]"字符"