继续学R:R的6大基本数据类型(原子向量)

在学一门编程语言时,避免不了要和数据打交道,那么数据在这门语言中是如何存储和使用的呢?这就涉及到了数据类型。

R对象 & 原子向量

R语言中使用R对象(R-object)来存储数据,常见的R对象有:

  • 向量 / Vectors
  • 列表 / Lists
  • 矩阵 / Matrices
  • 数组 / Arrays
  • 因子 / Factors
  • 数据帧 / Data Frames

其中向量 / Vectors是最基本的R对象,有六种类型的原子向量(atomic vectors),分别是: 逻辑型/logical、整型/ integer、数字/numeric、复数/complex、字符/character、原生/raw

原子向量对比

我个人理解原子向量就好比其它编程语言中的基本数据类型,除了直接使用以外还可以用于构造其它复杂的数据类型,这里我先不研究那些复杂的类型都咋玩,先来对比一些这些基本类型吧。

在这之前,我们先介绍一个函数class(),这个函数作用是返回对象的类型,大概和Python中的type()类似吧,比如print(class(1))会返回

[1] "numeric"

下边我通过一个表格来对比一下这6大原子类型,并且标注出对应的Python语言中的类型

类型例子代码输出Python类型
整型/ integer1L, 100Lv<-100L; print(class(v));[1] "integer"int
数字/numeric123, 123.45v<-123.45; print(class(v));[1] "numeric"float
复数/complex3 + 2iv<-3 + 2i; print(class(v));[1] "integer"complex
逻辑型/logicalTRUE, FALSEv<-TRUE; print(class(v));[1] "logical"bool
字符/character'a', "abc", 'abc'v<-"abc"; print(class(v));[1] "character"str
原生/raw"Hello" is stored as 48 65 6c 6c 6fv<-charToRaw("Hello"); print(class(v));[1] "raw"bytes

由此看来,R中的6大原子类型和Python中的类型也差不多啦(请叫我差不多先生)。

赋值

因为例子代码中用到了赋值语句,所以多啰嗦两句,很多编程语言都是使用诸如:var = 1 类似的赋值方式。R语言的赋值让我好一通迷糊:一是好多赋值符号;二是支持向右赋值。

向左赋值

向左赋值可以使用:
=
<-
<<-

向右赋值

向右赋值可以使用:
->
->>

至于这些符号有啥区别,我找了一下,找到一些相关文章,但是没详细去研读,用到的时候再说吧,列到相关链接里了,反正现在我知道的这些已经够我用的啦😀

相关链接

H2
H3
H4
3 columns
2 columns
1 column
5 Comments