学习小组Day4笔记---猫爪草
Windows R安装
2019年听学校老师开设的《作物组学与分子生物学》这门课,接触到了linux和R。
习惯于看老师处理代码,偶尔还会因为断网翻车而乐此不疲,实质上那门课我是觉得我属于典型的吃瓜群众,浪费甚多光阴。
今日得幸重拾R基础,不当之处还请指点一二。
本文参照 [小洁忘了怎么分身]《R语言第一课:R和Rstudio》https://www.jianshu.com/p/87f9afb8068c及已有的R基础记录笔记。
下载软件:R,Rstudio
官网:https://www.r-project.org/
CRAN:https://cran.r-project.org/
参考学习视频
生信技能树 《生信人应该这样学R语言》
https://m.bilibili.com/video/av25643438.html
关于Windows R的安装,其基础涉及有2个:
1.安装R,下载 https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/base/R-3.6.3-win.exe
2.安装RStudio,下载https://download1.rstudio.org/desktop/windows/RStudio-1.2.5033.exe
注意
注意,R和RStudio可以单独安装,但RStudio只有在R安装好了以后才能正常使用。
认识R和Rstudio
R是一种编程语言,是统计计算和绘图的环境,R 是现今最受欢迎的数据分析和可视化平台之一。它是自由的开源软件,
并同时提供 Windows、Mac OS X 和 Linux 系统的版本。
Rstudio是免费提供的开源集成开发环境(IDE)
新建一个R代码。点击软件左上方一个绿色的+按钮,点击R Script即可新建一个R的代码
R0.png
随后就进入到这样的一个界面布局当中,也是最常见的布局。
R1.png
这其中最重要的就是代码编辑页面和控制台,代码编辑页面就是书写代码和编辑更改代码的地方,控制台就是代码运行和输出运行结果的地方。
以1+1为例,来讲解RStudio中代码运行的方式:在代码编辑页面,书写代码,写好了之后,当看闪动的光标所在的行,然后点击下图红框中的运行按钮(或者敲击ctrl+enter组合键)就可以运行光标所在的行,然后光标自动转跳到下一行,运行结果显示在控制台中。(10-5 未执行)。
R2.png
保存代码:
书写过的代码,全部还都保存在代码编辑页面中,要是想保存这个代码怎么办呢?,点击File - Save 或者是 Ctrl+s ,填上你要保存的文件名即可(注意:R代码的后缀名都是.R)。
可以先做两个简单的图:
图一:
Snipaste_2020-03-26_20-54-41.png
代码:
plot(rnorm(50))
plot()函数是R中基本的画x-y两个变量的函数,其用法如下为:plot(x, y, ...)
例如:首先我用runif()函数产生了两列随机数:x1,y1,然后用plot()函数直接画图:
x1 <- round(runif(20,min = 0 ,max = 100))
x1
[1] 75 70 7 54 42 49 47 94 5 2 57 54 46 52 88 27 20 95 58 10
y1 <- round(runif(20,min = 0 , max = 100))
y1
[1] 1 94 94 77 77 3 26 75 92 89 5 4 99 20 70 48 88 27 36 62
plot(x1,y1)
Snipaste_2020-03-26_21-05-16.png
Snipaste_2020-03-26_21-05-39.png
代码:
x1 <- round(runif(20,min = 0 ,max = 100))
x1
y1 <- round(runif(20,min = 0 , max = 100))
y1
> plot(x1,y1)
这是plot()函数默认的画图样式。还可以添加其他参数来改变图的样式。
runif
The Uniform Distribution On The Simplex
Generates random compositions with a uniform distribution on the (rcomp) simplex.
https://www.rdocumentation.org/packages/compositions/versions/1.40-4/topics/runif
plotting
Generic X-Y Plotting
Generic function for plotting of R objects. For more details about the graphical parameter arguments, see `[par]
https://www.rdocumentation.org/packages/graphics/versions/3.6.2/topics/plot
RDocumentation
https://www.rdocumentation.org/
图二:
Snipaste_2020-03-26_21-18-09.png
代码:
boxplot(iris$Sepal.Length~iris$Species,col = c("lightblue","lightyellow","lightpink"))
R语言基本操作
1.用Rproject管理工作目录
参考<hhttps://mp.weixin.qq.com/s/G-LXN9P2HVLv9v0cvyFJMA>
工作目录就是默认的读取和储存位置
设置工作目录:
setwd()
查看工作目录:
getwd()
2.显示文件列表
dir()
list.files()
Snipaste_2020-03-26_21-30-21.png
工作目录这么多个对象?我的R绝对不是刚刚安装的。
3.加减乘除 +-*/
4.赋值
赋值符号用 <-
,这是小于号加上减号,也可以按Alt加上减号
5.删除变量
a<-3
b <- 1
c <- 4
u <- 5+6
rm(b)
rm(u,c)
rm(list = ls())#清空所有变量
6.列出历史命令
history()
相当于鼠标单击右上角的history标签
7.清空控制台
快捷键ctrl+l
R语言数据类型
代码来源:《R语言实战(中文完整版)》案例
R中的数据结构:向量,矩阵,数组,数据框,列表
R3.png
图片来源:《R语言实战(中文完整版)》 第二章 《创建数据集》
1.向量的创建
a <- c(1, 2, 5, 3, -4)
b <- c("one", "two", "million")
c <- c(TRUE, T, FALSE, F)
print(a)
print(b)
print(c)
typeof(a)
typeof(b)
typeof(c)
2.向量的访问
print(a[3])
print(a[c(1,4)])
print(a[2:4])
3.矩阵的创建
y <- matrix(1:20, nrow = 5, ncol = 4)
print(y)
m <- c(20, 23, 27, 33)
rnames <- c("R1", "R2")
cnames <- c("C1", "C2")
M1 <- matrix(m, nrow = 2, ncol = 2, byrow = T, dimnames = list(rnames, cnames))
M2 <- matrix(m, nrow = 2, ncol = 2, byrow = F, dimnames = list(rnames, cnames))
print(M1)
print(M2)
4.矩阵的访问
print(y[1,2])
print(y[2,c(2:4)])
5.数组的创建
dim1 <- c("A1", "A2")
dim2 <- c("B1", "B2", "B3")
dim3 <- c("C1", "C2", "C3", "C4")
z <- array(1:24, c(2, 3, 4), dimnames = list(dim1, dim2, dim3))
print(z)
6.数据框的创建
ID <- c(1:4)
age <- c(25, 34, 28, 72)
treat <- c("type1", "type2", "type1", "type2")
status <- c("poor", "imporve", "poor", "perfect")
pdata <- data.frame(ID, age, treat, status)
print(pdata)
7.数据框的访问
print(pdata[1:2])
print(pdata[c("age", "treat")])
print(pdata$status)
8.有序型变量的创建
status <- c("poor", "improve", "poor", "perfect")
status <- factor(status, order = T, levels = c("poor", "improve", "perfect"))
print(status)
9.列表的创建
l <- "my frist list"
mylist <- list(title = l, data = a, M1, pdata)
print(mylist)
10.列表的访问
print(mylist$data)
print(mylist[[2]])