再学向量vector
2020-06-14 本文已影响0人
小贝学生信
在之前其实或多或已经认识了向量,参考刚入门R时的笔记
一、向量的分类
向量是数据结构的基础,一个向量中的各个值必须是同种类型的;常用的可分为三大类:
- 字符型 character
创建时一定要注意引号 - 数值型 numeric
具体可分为整型integer与双精度型double;
R 中默认数值是双精度型的。
如果想要创建整型数值,可以在数字后面加一个 L,例如
1L
-
逻辑性 logical
即大写的,不加引号的TRUE
、FALSE
-
特殊类型
1、空向量NULL:指长度为0的向量,有时会在报错时遇到。(标量是长度为1的向量)
2、NA 空值即缺失值,此外在数值型变量中还会涉及到NaN、Inf分别表示不可能的值与无限大的值。
1
判断向量类型可用typeof()
函数
typeof(letters)
typeof(1:10)
type(1)
type(1L)
之前学过
class()
也可判断对象类型,二者区别暂时还没有完全明白。
二、向量的属性/特性
任何向量都可以通过其特性来附加任意元数据,R对于向量也有基本的特性规定,如名字,类等。可用attributes()
函数查看
1、名字--最基本的特性
- 所有类型的向量都是可以命名的,可以在使用
c()
函数创建向量时进行命名。也可通过names()
函数修改
a <- c(1, 2, 5)
attributes(a)
a <- c(x = 1, y = 2, z = 5)
attributes(a)
names(a) <- c("x1", "y1", "z1")
attributes(a)
2
2、类class--与S3泛型函数直接相关
- 此特性不单单局限于向量,而是更多的是针对对象而言。
- 可参看S3泛型函数的相关笔记
3、因子level特性
- 因子是在整型向量的基础上构建的,添加了水平特性,同时也修改为了类为factor
rain <- factor(a, levels = c("A", "B", "C"))
attributes(rain)
typeof(rain)
3
4、单独设置特性值
-
attr()
函数可设置一个新的特性及其对应的特性值
x <- 1:10
attr(x, "greeting") <- "Hi!"
attr(x, "farewell") <- "Bye!"
attributes(x)
4
三、向量的操作
1、向量类型转换
- R提供了完备的基础函数
as.*()
族函数,可见这篇笔记的最后部分 - 实际应用时,可先用
is.*()
判断类型,根据返回的真假情况,再进行转换。
值得注意的是:在数值环境中使用逻辑向量时,TRUE 转换为 1, FALSE 转换为 0。
2、取子集
参考刚入门R时的笔记,提d到了很多方法。