R基础1——数学运算、数据结构、数据类型

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

常见向量运算
向量相关的有用函数

猜你喜欢

转载自blog.csdn.net/s1164548515/article/details/88344128
今日推荐