数据结构
所有R语言对象都有两个内在属性,类型和长度。类型是对象元素的基本种类,共有四种:
-
数值型——整型、单精度实型、双精度实型
-
字符型
-
复数型
-
逻辑型(FALSE、TRUE或NA)
常用mode()
、class()
、length
得到类型和长度
注:mode:表示对象在内存中的存储类型
基本数据类型’atomic’ mode:
numeric(Integer/double), complex, character和logical
递归的对象(recursive object):
‘list’ 或 ‘function’
class:是一种抽象类型,或者理解为一种数据结构
他主要是用来给泛型函数(参考java中泛型的概念)识别参数用。
对象
对象有7种:向量、因子、数组、矩阵(特殊的数组)、数据框、时间序列(ts)、列表
基本运算中:xor()
异或函数:a⊕b = (¬a ∧ b) ∨ (a ∧¬b) 逻辑运算
浏览对象的信息
ls()
返回环境中的对象名称,参数pattern
指定含有某个字母,^
指定首字母:ls(pat="^m")
ls.str()
显示内存中所有对象的详细情况,max.level=-1
避免结果过长
向量
seq(from = , to = , by = ((to - from)/(length.out - 1)),length.out = NULL)
1 | seq(from = 2, to = 5, by = 0.5) |
rep(x, times = 1, length.out = NA, each = 1)
times
x重复的次数;each
x中每一个元素重复的次数
1 | rep(2:5, times = 2) |
sequence()
1 | sequence(5:10) |
字符
paste (..., sep = " ", collapse = NULL)
1 | paste(c("X", "Y"), 1:10, sep = "") |
因子
factor(x = character(), levels, labels = levels, ordered = is.ordered(x) )
1 | factor(x = LETTERS[1:3], levels = c("C", "A", "B")) |
gl(n, k, length = n*k, labels = seq_len(n), ordered = FALSE)
1 | gl(2, 3, labels = seq(2)) |
数组和矩阵
array(data, dim, dimnames)
1 |
|
- 对矩阵运算
apply()
、sweep
函数
1 | A <- matrix(seq(9), ncol=3) |
- 数据切片
sweep
1 | # NOT RUN { |
数据框
data.fram()
注意函数rownames()
、colnames()
、attach()
、with
1 | attach(Puromycin) |
列表
略
时间序列
ts(data = NA, start = 1, end = numeric(), frequency = 1,deltat = 1, ts.eps = getOption("ts.eps"), class = , names = )
1 | A <- ts(1:10, start = 1959) |
常用的统计函数
mad()
中位绝对离差
MAD=median(∣Xi−median(X)∣)
鲁棒性
具体可参见:https://blog.csdn.net/horses/article/details/78749485
- 中位数、方差、标准差、范围、四分位数极差、分位数
1 | x <- seq(10) |
- 累乘、累和(结果)
1 | x <- seq(5) |
- 累和、累积、累小、累大(每一个)
1 | x <- seq(5) |
- 排序
rev()
、sort()
、order()
、rank()
1 | (x <- sample(seq(20),5,replace = F)) |
一个技巧
这是一个乱入的技巧,记得使用R语言做机器学习的时候用到的。
1 | ?substitute |