DAY5 生信技能树-数据挖掘第三期学习笔记

Ruizheng 的学习笔记

感谢 生信技能树 小洁老师

常见报错:找不到文件
  • 文件没有存放于工作目录下(Rprojecct)
  • 拼写错误 (用tab自动补齐)

文件读入的练习

  • 注意不要惹上因子 options(stringsAsFactors = F)
  • 参数 check.names = F 能避免让函数自动检查并改变你的文本 eg.如果不加这个参数,列名的 "-" 会变成“.”
  • 参数 comment.char = "!" 能让函数在读取文件时将以"!"开头的行视为注释,从而在读入R时忽略这些行
  • 参数 fill = TRUE,能够在读入时自动补齐,避免出现某一个观察的变量不足而无法读入,但是在读入后应检查你的数据框
  • 参数 skip = 65,能够在读入自动跳过前65行
下面是讲课的知识点,相应的代码和练习题
#1.读取ex1.txt
ex1 = read.table("ex1.txt")
#2.读取ex2_B cell receptor signaling pathway.csv
ex2 = read.csv("ex2_B cell receptor signaling pathway.csv",
               row.names = 1, check.names = F)
#3.读取GSE32575_series_matrix.txt,赋值给gse。
gse = read.table("GSE32575_series_matrix.txt", 
                 comment.char = "!",
                 header = T,
                 row.names = 1)
#4.描述gse的属性
dim(gse)
colnames(gse)
rownames(gse)
#5.将gse导出为新的txt和csv文件。
write.table(gse, file = "zz.txt")
write.csv(gse,"zz.csv")
#6.将gse保存为Rdata并加载。
save(gse, ex1, ex2, file = "zz.Rdata")
#7. 加载 zz.Rdata 并查看有几个数据
(load("zz.Rdata"))

#练习:
#1.读取complete_set.txt(已保存在工作目录)
a <- read.table("complete_set.txt", header = T)
# 2.查看有多少行、多少列
dim(a)
# 3.获取行名和列名
rownames(a); colnames(a)
# 4.导出为csv格式
write.csv(a, file = "xx.csv")
# 5.保存为Rdata
save(a, file = "xx.Rdata")
# 6.加载class.Rdata,查看数据类型
(load("class.Rdata"))
class(y)
高阶数据读取指南

小洁老师倾情分享,高阶数据读取指南

R语言能读取的文件格式
R语言能读取的文件格式
用于读取/导出文件的R包
用于读取/导出文件的R包

图就是数据,数据就是图

常见可视化R包

1. 作图

  • base
  • ggplot2
  • ggpubr

2. 拼图

基础包作图函数
plot(iris[,1],iris[,3],col = iris[,5]) 
text(6.5,4, labels = 'hello')
boxplot(iris[,1]~iris[,5])
dev.off()

ggplot2 语法

  1. 入门级绘图模板
  2. 映射-颜色、大小、透明度、形状
  3. 分面
  4. 几何对象
  5. 统计变换
  6. 位置调整
  7. 坐标系
1. 入门级模版

ggplot(data = <DATA>)+
<GEOM_FUNCTION>(mapping = aes(<MAPPINGS>))

ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length))
2. 映射
映射
ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           color = Species))
手动设置

手动设置

手动设置放到 aes 外面

ggplot(data = mpg) +
geom_point(mapping = aes( x= displ, y= hwy), color = "blue")   
3. 分面

把一张图变成多个子图

ggplot(data = iris) + 
  geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length)) + 
  facet_wrap(~ Species) 
3. 双分面
test = iris
test$Group = sample(letters[1:5],150,replace = T)
ggplot(data = test) + 
  geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length)) + 
  facet_grid(Group ~ Species)
练习题
#练习6-1
# 示例数据:ggplot2中数据集mpg
# 1.分别以mpg的displ和hwy两列作为横纵坐标,画点图。
ggplot(mpg) +
  geom_point(aes(x = displ, y = hwy))
# 2.尝试修改颜色或大小,从mpg数据框中任选可以用来分类的列。
ggplot(mpg) +
  geom_point(aes(x = displ, y = hwy, size = cyl, color = drv))
# 3.根据class列来分面
ggplot(mpg) +
  geom_point(aes(x = displ, y = hwy)) +
  facet_wrap(~ class, nrow = 2)
# 4.根据drv和cyl两个变量来分面
ggplot(mpg)+
  geom_point(aes(x= displ, y = hwy))+
  facet_grid(drv~cyl)
4. 几何对象

几何对象

理解分组

ggplot(data = test) + 
  geom_smooth(mapping = aes(x = Sepal.Length, 
                          y = Petal.Length))

ggplot(data = test) + 
  geom_smooth(mapping = aes(x = Sepal.Length, 
                            y = Petal.Length,
                            group = Species))
ggplot(data = test) + 
  geom_smooth(mapping = aes(x = Sepal.Length, 
                          y = Petal.Length,
                          color = Species))  ### 会画出三条线

几何对象可以叠加

  • 图层
  • 局部映射和全局映射
    局部映射仅对当前图层有效,全局映射对所有图层有效
    图层:geom_xx()画出的单个几何对象
ggplot(data = test) + 
  geom_smooth(mapping = aes(x = Sepal.Length, 
                          y = Petal.Length))+
  geom_point(mapping = aes(x = Sepal.Length, 
                           y = Petal.Length))

ggplot(data = test,mapping = aes(x = Sepal.Length, y = Petal.Length))+
  geom_smooth()+
  geom_point()
练习题
# 1.尝试写出下图的代码
# 数据是iris
# X轴是Species
# y轴是Sepal.Width
# 图是箱线图
ggplot(iris)+
  geom_boxplot(aes(x= Species,y = Sepal.Width))
# 2. 尝试在此图上叠加点图,
# 能发现什么问题?
ggplot(iris,aes(x= Species,y = Sepal.Width, color = Species))+
  geom_boxplot()+
  geom_point()
# 3.用下列代码作图,观察结果
ggplot(test,aes(x = Sepal.Length,y = Petal.Length,color = Species)) +
  geom_point()+
  geom_smooth(color = "black")
练习题反馈出来的问题
  • 当局部映射和全局映射冲突,以局部映射为准
  • 图层叠加与覆盖的问题
  • 点图重叠的问题
分享一个做美图的网站

http://www.sthda.com/english/
小洁老师的画图合辑

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容