R语言学习

基本语法

赋值

a<-2 将2赋给a, 也可以是 2->a, 也可以是assign("x",3)

基本运算符

+, -, *, /, ^

基本函数

log, exp, sin, cos, tan, sqrt等

其他

逻辑符号位 TRUE和FALSE

NaN非数字

向量

产生

x <- c(10.4, 5.6, 3.1, 6.4, 21.7)

1:n 产生[1,n]的向量.

seq是最常用的方式,它的原型是seq(from, to, by=1, length, along) by为步长,默认是1.

rep(x, times=2) 将x重复两次产生新的向量, rep(x,each=2) 将x的每个分量重复2次产生新的向量.

不同维数的向量一起运算,则短的循环使用.

向量函数

max和min给出向量的最大值和最小值

range给出长度为2的向量,即c(min(x), max(x))

length给出向量的维数

sum求和

prod求积

mean均值

var方差

sort返回升序向量

字符向量

可以用单引号活双引号

paste(c("X","Y"), 1:10, sep="") 结果为"X1", "Y2", "X3", "Y4", "X5", "Y6", "X7", "Y8", "X9", "Y10"

索引向量

x[1:10] 取x的前10个分量.

x[-(1:5)] 排除指定元素.

c("x","y")[rep(c(1,2,2,1), times=4)] 三生一个长度为16,由 "x", "y", "y", "x" 重复4次而构成的向量.

对象

R的对象类型包括数值型, 复数型, 逻辑型, 字符型, 原味型.

可以通过class()查看类型.

类型间转换

x <- 0:9 x为数值型

d <- as.character(x) d为字符向量c("0", "1",...,"9")

as.interger(d) 转换为数值型.

attr(z, "dim") <- c(10,10) 设置z的属性为10*10的矩阵.

矩阵

函数crossprod实现两个向量的矢积,对于两个向量来说,crossprod(x,y)得到一个矩阵.

diag函数,传入的参数为向量时,得到矩阵;传入参数为矩阵时,得到向量.

a^{-1}

解方程

solve(a,b)

特征值

ev <- eigen(Sm)得到Sm的特征值和特征向量.ev$val和ev$vec分别表示二者.

ev <- eigen(Sm)$values,只计算特征向量.

其它数据类型

列表

是一种泛化的向量, 它不要求所有的元素是同一种类型.

因子

数据框

和矩阵类似, 列可以是不同的数据类型.

数组

Z <- array(h, dim=c(3,4,2)) 用 h 在 Z 中创建一个 3 × 4 × 2 的数组

外积

将是这样的一个数组: 维度向量通过连接两个操作数的 维度向量(顺序非常的重要)得到;数据向量则由 a 的数据向量元素和 b 的数据向量元素的所有可能乘积得到.

操作符是%o%, 也可以是outer(a,b,"*")

转置

函数 aperm(a, perm) 可以用来重排一个数组 a. 参数 perm 可以是 {1, ..., k}的一个排列, 其中 k 是 a 的下标数目. 这个函数将产生 一个和a大小一致的数组, 不过旧的维度 perm[j]将会变成第j个维度. 

例如aperm(a, c(2,1))实现了矩阵a的转置.

未完待续

原文地址:https://www.cnblogs.com/saieuler/p/3306522.html