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 条件语句的规则,没有那么多为什么。

上一篇 下一篇

猜你喜欢

热点阅读