1106 chapter15 向量

2018-11-06  本文已影响0人  森尼啊

向量基础

向量类型

向量属性

扩展向量4种类型

原子向量 → 列表 → 扩展向量

原子向量

逻辑型

FALSE,TRUE,NA

数值型

R默认是双精度型的,创建整型在数值后添加L

二者的区别

字符型

每个唯一的字符串在内存中只保存一次

缺失值

NA,NA_integer_, NA_real_.NA_character_

p204练习题

  1. 前者意思是是否是双精度型的正数。返回逻辑值FALSE,TRUE
    后者与前者的结果相反。|| 答案
> x <- c(0, NA, NaN, Inf, -Inf)
> is.finite(x)
[1]  TRUE FALSE FALSE FALSE FALSE
!is.infinite(x)
[1]  TRUE  TRUE  TRUE FALSE FALSE

is.finite()认为非缺失的数值型是有限的,NA. Inf,-Inf均不是有限的
is.infinite() 认为Inf,-Inf是无限的,其他的包括NA都是有限的
NaN被二者嫌弃,都是FALSE

  1. 此函数检查二者是否在一个可容忍的范围内,.Machine$double.eps是计算机中最小的浮点数
  2. 整型向量可能有的值有 ±2^31-1个,那一个是NA_integer_
    双精度型可能有的值是2^64个
  3. parse_logical()、parse_integer()、parse_integer()、parse_number()

原子向量的使用

强制转换

显式强制转换as.logical()等,还有隐式转换
!!!原子向量中不可包含不同类型的元素,类型是整个向量的属性!

标量与循环

向量命名

创建时命名或者 创建后用 set_names()

向量取子集

filter()只能筛选tibble
筛选向量,[]

p209练习题

  1. mean(is.na(x))计算x中缺失值的占比
    sum(!is.finite(x))计算向量中 NA,NaN,Inf的总和
  2. The function is.vector() only checks whether the object has no attributes other than names. Thus a list is a vector:
    The function is.atomic() explicitly checks whether an object is one of the atomic types (“logical”, “integer”, “numeric”, “complex”, “character”, and “raw”) or NULL
  3. 二者最大区别是,purrr::set_names()可以允许函数或者公式转化名字
    当名称比向量短时,setNames()会返回缺失值,purrr::set_names()返回错误

递归向量

list()函数创建列表

列表可视化

列表用圆角矩形,原子向量用直角矩阵

特性

attr()读取和设置单个特性值
名称、维度、类

扩展向量

因子、日期、时间、tibble

上一篇 下一篇

猜你喜欢

热点阅读