R语言画图----if 条件语句
2023-07-12 本文已影响0人
生信小白花
在群里看到有同学进行了如下提问,看起来很简单的代码,但尝试运行确实显示pdf文件已损坏。这就勾起了我的好奇心。涉及到的知识点其实就是 if 条件语句。
image.png先来看一下我的解决方案。
一、不要 if 条件语句,直接画图保存。
##下载NMF包
install.packages('NMF')
library(NMF)
##创建随机矩阵
mat <- rmatrix(20,10)
##非负矩阵分解
res <- nmf(mat,2:3,nrun=10)
##创建pdf文件
pdf(file='result.pdf',family="serif",width=8,height=8)
##画折线图
plot(res)
##关闭画板
dev.off()
通过上面方法,可以成功得到想要的结果。
但是呢这个同学想用 if 条件语句自然有他的道理,小洁老师讲课的时候也讲过这种方法,当部分代码不需要每次都运行的时候就用 if 语句框起来,不想运行就把T改成F。
二、在 if 条件语句里进行画图并保存。
##调试后发现
install.packages('NMF')
library(NMF)
##生成一个随机矩阵
mat <- rmatrix(20,10)
if(T){
res <- nmf(mat,2:3,nrun=10)
pdf(file='result.pdf',family="serif",width=8, height=8)
p=plot(res) ##修改
print(p)
dev.off()
}
只需要加一句代码print()。为什么要加这一句我也不知道,大家都理所当然的这样用,没人解释原因,那就把它当成 if 条件语句的规则,没有那么多为什么。