R语言画图----if 条件语句

在群里看到有同学进行了如下提问,看起来很简单的代码,但尝试运行确实显示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 条件语句的规则,没有那么多为什么。

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

推荐阅读更多精彩内容

  • 中原焦点团队,网络初级第12期,雷素敏,坚持分享第1870天: 第二章心理健康教育的理论基础。行为主义的创始人是华...
    风雨之前阅读 656评论 0 1
  • 每益鲜乳业|巴氏鲜奶7天和15天保质期有什么区别吗? 既然都是巴氏杀菌,为什么有的7天,有的15天 1、营养价值不...
    每益鲜乳业阅读 1,443评论 0 0
  • 今天终于看了几篇精彩的故事。 文字活泼而灵巧。看什么都看不进时,故事可以悄无声息的跨越障碍。随之而来是思绪纷飞后的...
    甜甜的小酒窝阅读 761评论 0 0
  • 今天值得肯定的事 读了《刻意学习》,其中有几个观点挺喜欢的①不要进行碎片化学习,碎片化学习就是自欺欺人。②如果一个...
    爱吃的H先生阅读 514评论 0 0
  • 六 对抗在矛盾中的地位 在矛盾的斗争性的问题中,包含着对抗是什么的问题。我们回答道:“对抗是矛盾斗争的一种形式,而...
    杜文硕阅读 1,449评论 0 0