R基础1
官网: http://www.r-project.org/
安装宏包: install.packages(“包名”)
调用宏包:library(gplots) / require(??)
帮助: ?function name / help(function name)
模糊搜索:??“key words” / help.search(“key words”)
R面向对象,严格区分大小写
工作路径:
> getwd() #查看当前工作路径
[1] "E:/workspace/self_shlay/190725"
> setwd("E://workspace/") #设置工作路径
> getwd() #再次查看设置后的工作路径
[1] "E:/workspace"
清除变量:
rm(list="a") #清楚变量a
rm(list=ls()) #清除所有变量
选项设置:
> defaults <- options()
> getOption("digits")
[1] 7
> pi
[1] 3.141593
> options(digits=15)
> pi
[1] 3.14159265358979
> options(defaults)
> getOption("digits")
[1] 7
1.数学运算
运算类型 | ||||||
---|---|---|---|---|---|---|
二元运算符 | + | - | * | / | ^(幂运算) | %%(求余数) |
数学函数 | abs(绝对值) | sqrt(平方根) | log(对数) | exp(指数) | log10(以10为底取对数) | factorial(阶乘) |
三角函数 | sin | cos | tan | arcsin | arccos | arctan |
取整 | round(四舍五入) | ceiling(向上取整) | floor(向下取整) | trunc(只取整数部分) | signif(保留给定位数) | zapsmall(小数点后指定位数开始四舍五入) |
三角函数 | Inf(正无穷) | -Inf(负无穷) | NAN(空值) | pi(圆周率) | exp(1)(e=2.7182) | 1i(复数,数字1,字母i) |
#一些例子:
x=124%%10 #求余数
x
[1] 4
> a=factorial(4) #求阶乘
> a
[1] 24
##取整
> b=c(-1.58881,-2.31234,-3.96654,2.10023,5.76543)
> round(b)
[1] -2 -2 -4 2 6
> ceiling(b)
[1] -1 -2 -3 3 6
> floor(b)
[1] -2 -3 -4 2 5
> trunc(b)
[1] -1 -2 -3 2 5
> signif(b,digits = 3)
[1] -1.59 -2.31 -3.97 2.10 5.77
> zapsmall(b,digits = 2)
[1] -1.6 -2.3 -4.0 2.1 5.8
> zapsmall(b,digits = 4)
[1] -1.589 -2.312 -3.967 2.100 5.765
##
> 0/0
[1] NaN
> 1/Inf
[1] 0
2. 数据结构
展示常用的五种数据结构: Vectors ; Matrices ; Arrays ; Lists ; Dataframes
2.1 Vectors(向量)
向量生成:
常用产生向量的四种形式:c() ; :(冒号) ; seq() ; req()
示例如下:
> v1 <- c(1,2.5,3.6,4,5)
> v1
[1] 1.0 2.5 3.6 4.0 5.0
> v2 <- -3:3
> v2
[1] -3 -2 -1 0 1 2 3
> v3 = seq(1,3,by=0.5)
> v3
[1] 1.0 1.5 2.0 2.5 3.0
> seq(0, 2, len=5)
[1] 0.0 0.5 1.0 1.5 2.0
> rep(1:3, each=2)
[1] 1 1 2 2 3 3
> rep(1:3, times=2)
[1] 1 2 3 1 2 3
> rep(1:3, times=c(2,3,4))
[1] 1 1 2 2 2 3 3 3 3
获取向量元素:
常见三种方法:[ ] ; which() ; match()
示例如下:
#[]
> v1 <- c(1,2.5,3.6,4,5)
> v1[3] #R语言下标从1开始
[1] 3.6
> v1[1:3] #R语言1:3表示1,2,3 . 左右两端的数字均包括
[1] 1.0 2.5 3.6
> v1[c(1,3,4)] #以向量的形式展示将要取出的元素下标
[1] 1.0 3.6 4.0
> v1[-2] #表示返回删掉第二个元素后的向量,实际v1并未改变
[1] 1.0 3.6 4.0 5.0
> v1[-c(2,3)] #表示返回删掉第二、三个元素后的向量
[1] 1 4 5
> v1[v1>3] #表示提取v1中大于3的元素
[1] 3.6 4.0 5.0
> v1[3]<- 999 #将v1的第三个元素重新赋值为999
> v1
[1] 1.0 2.5 999.0 4.0 5.0
### which()
> v1>=4 #判断v1的每个元素是否大于等于4
[1] FALSE FALSE TRUE TRUE TRUE
> which(v1>=4) #返回v1中大于等于4的元素所在的位置下标
[1] 3 4 5
> which.max(v1) #返回v1中最大值所在的位置下标
[1] 3
> which.min(v1) #返回v1中最小值所在的位置下标
[1] 1
> v1[which.max(v1)] #根据v1中最大值所在的位置下标结合[ ]返回v1中最大元素值
[1] 999
> max(v1) #获取向量最大元素值的简易方法
[1] 999
### match()
v5 <- rep(1:5, times=5:1)
> v5
[1] 1 1 1 1 1 2 2 2 2 3 3 3 4 4 5
> match(1:5,v5) #返回元素1,2,3,4,5首次出现的位置下标
[1] 1 6 10 13 15
> unique(v5) #获取向量v5中元素取值种类
[1] 1 2 3 4 5
> match(unique(v5),v5) #获取向量v5中元素各取值首次出现的位置
[1] 1 6 10 13 15
常见向量运算