在学一门编程语言时,避免不了要和数据打交道,那么数据在这门语言中是如何存储和使用的呢?这就涉及到了数据类型。
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类型
—-|—-|—-|—-|—-
整型/ integer|1L, 100L|v<-100L; print(class(v));
|[1] “integer”|int
数字/numeric|123, 123.45|v<-123.45; print(class(v));
|[1] “numeric”|float
复数/complex|3 + 2i|v<-3 + 2i; print(class(v));
|[1] “integer”|complex
逻辑型/logical|TRUE, FALSE|v<-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 6f|v<-charToRaw("Hello"); print(class(v));
|[1] “raw”|bytes
由此看来,R中的6大原子类型和Python中的类型也差不多啦(请叫我差不多先生)。
赋值
因为例子代码中用到了赋值语句,所以多啰嗦两句,很多编程语言都是使用诸如:var = 1
类似的赋值方式。R语言的赋值让我好一通迷糊:一是好多赋值符号;二是支持向右赋值。
向左赋值
向左赋值可以使用:=
<-
<<-
向右赋值
向右赋值可以使用:->
->>
至于这些符号有啥区别,我找了一下,找到一些相关文章,但是没详细去研读,用到的时候再说吧,列到相关链接里了,反正现在我知道的这些已经够我用的啦😀
相关链接
- 学R:准备工作
- 继续学R:安装软件包
- 继续学R:另一款在线R环境
- https://www.tutorialspoint.com/r/r_data_types.htm
- https://www.tutorialspoint.com/r/r_vectors.htm
- Google’s R Style Guide #assignment
- Assignment Operators
This page is synchronized from the post: 继续学R:R的6大基本数据类型(原子向量)