R语言学习(一)

R语言学习
1.安装包

Installing: install.packages(“ggplot”)
Loading:library(ggplot2)
Updating:update.packages() //更新全部的包

2.R语言基础

创建向量:v=c(1,4,4,3,2,2,3) 或者 w=c(‘’apple",“banana”,“orange”)或者c=c(TRUE,FALSE,TRUE)
根据元素位置返回元素:v[c(2,3,4)] 或者 v[2:4] 或者 v[c(2,4,3)] //中间的为位置序号
删除特定元素:v=v[-2] 或者 v=v[-2:-4]
提取特定元素:v[v<3] //和Matlab很像
返回元素位置:which(v==3)
返回元素最大值最小值位置:which.max(v) which.min(v)

3.数值

生成随机数:a=runif(3,min=0,max=100) 或者sample(100,15) //从1~100里取15个数
求整等操作:flooor(a) 或者 ceiling(a) 或者round(a,4) //这里4是保留四位小数
生成满足某种分布的随机数:rnorm() (正态分布)、rexp()、rbinom()、rgeom()、rnbinom() //例如rnorm(4)
//例如:x=rnorm(100,mean=10,sd=1)
设置种子:set.seed() //例如set.seed(255) 同样的种子可以得到同样的随机数,一般放在生成随机数前使用

4.读入数据

读取本地数据:read.csv(file="/documents/rugby.txt") 或 read.table() //用法同理
读取线上数据: read.csv(“http//www.macalester.edu/…/swim100m.csv”) 或者read.table() //用法同理
attach() //将矩阵的列名转为变量名,即把矩阵拆分为变量方便调用

4.1 查看数据

head(mtcars) //数据太多时想查看数据可用此函数只显示数据的开头
summary(mtcars) //查看数据的平均值等
var() //方差 ,体现一组数据的波动状况
cov() //协方差,两种不同数据的方差,体现两组数据的变化趋,正值变化趋势一致,负值变化趋势相反,0不相关
cor()//相关系数

4.2 各种检验

t.test(x, y = NULL,alternative = c(“two.sided”, “less”,“greater”),mu= 0, paired = FALSE, var.equal = FALSE,conf.level = 0.95, …) //t检验,alternative为替代假设,conf.level为置信水平
其余检验可查看各种检验

5.绘制图表 //如果不知道参数如何设置,即?函数名称查看函数参数设置
5.1 直方图Histograms

在这里插入图片描述
在这里插入图片描述

5.2 密度图 plot(density())

在这里插入图片描述

5.3 scatter散点图 plot()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果:
在这里插入图片描述

5.4 Box plot箱图 boxplot(time sex)

boxplot(x,y) //表示x,y两组数据的箱图
boxplot(time~sex) //表示time这组数据按照sex标签来分组绘制箱图

5.5 quantile-quantile plot(QQ图)分位图

这里科普一下QQ图的知识,QQ图有两个作用:1、检验一组数据是否服从某一分布。2、检验两个分布是否服从同一分布。QQ图结构即将数据按照纵轴排列,横轴为其对应的百分位。
在这里插入图片描述
在这里插入图片描述
该结果并非呈直线分布说明x并不是正态分布。(点并不是沿着直线均匀增加)

5.6 绘制多个图

例: par(mfrow=(2,2)) //绘制2*2网格来存图
plot() plot()…

5.7 绘图参数设置

plot(rnorm(20),pch=0,cex=1,lty=5,lwd=2) //点样式,点大小,线型,线宽
在这里插入图片描述

5.8 出图设置

title()//tilte(main=“name”)
axis() //设置坐标轴格式
legend() //图例

5.9 排版Layout

attach(mtcars)
layout(matrix(c(1,1,2,3),2,2,byrow=TRUE) )//第一行为1,1 即第一张图占了两个位置
hist(wt)
hist(disp)
hist(mpg)

在这里插入图片描述

6.矩阵

生成矩阵:x=matrix(1:20,nrow=5,ncol=4,byrow=FALSE) //生成5行4列的矩阵,序号为1~20按照行计数
提取某行:x[2,]
提取某列:x[,2]
提取特定值:x[1,4]
提取多个数字:x[2,c(2,4)] 或者x[3:5,2]
设置矩阵行列名字:rownames(x)=rnames , colnames(x)=cnames

6.1 矩阵的运算

加减乘除:A+2,A^2,A2
矩阵乘矩阵:A%
%B
矩阵转置:t(A)
矩阵行、列均值求和:colMeans(A),colSums(A),rowMeans(A),rowSums(A)
点乘:crossprod(A),crossprod(A,B) //前者为自己乘自己
矩阵求逆:solve(A)
方程求解:V=solve(X,b) //b=Xv
矩阵对角线:diag(A)
按照给定对角线生成矩阵:diag(c(1,2,3,4)) //对角线为1,2,3,4,其余元素为0
diag(5) //生成对角线为1的5*5矩阵,其余元素为0
eigen(A) //计算特征值和特征向量

7.数组(多维矩阵)

定义方式:
dim1 =c(“A1”,“A2”)
dim2=c(“B1”,“B2”,“B3”)
dim3=c(“C1”,“C2”,“C3”,“C4”)
dim4 = c(“D1”,“D2”,“D3”)
z=array(1:72,c(2,3,4,3),dimnames=list(dim1,dim2,dim3,dim4))

8.Data Frame

定义方式:
patientID =c(1,2,3,4)
age=c(25,34,28,52)
diabetes = c(“Type1”,“Type2”,“Type1”,“Type1”)
status=c(“poor”,“improved”,“excellent”,“poor”)
patientdata = data.frame(patientID,age,diabetes,status)
patientdata
在这里插入图片描述

8.1 attach和detach

attach(x) //把列设置为变量
detach(x) //取消前一步操作

9.列表List

mylist = list(patientdata,x,…) //可以整合不同类 型的数据
调取List中的数据:mulist[[1]][1:2,] , mulist[1]

10.factor //类似数据标注

factor =fact

11.其他
11.1 for循环

for(i in 1:10){
print(i)
}

11.2 while

while(i<=10){
print(i)
i=i+1;
}

11.3 if

if(i==1){
print(“1”)
}
elseif(){}
else{}

11.4 switch

i=“xxx”
switch(i ,xxx=“x”, yyy=“y”) -> “x”

11.5 函数

myfunction =function(x,a,b,c){
return(asin(x)^2 -bx +c)
}

11.5.1 绘制函数曲线

curve(myfunction(x,20,3,4),xlim=c(1,20))
在这里插入图片描述
参考资料:https://www.bilibili.com/video/av5625356?from=search&seid=2829520952582005465

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值