你好,欢迎访问远方教程PC版!
广告位招租

R技巧[26]:需要TRUE/FALSE值的地方不可以用缺少值

[日期:2016-12-24]   来源:远方教程  作者:远方教程   阅读:35397次[字体: ] 访问[旧版]
 捐赠远方教程 

   我们在运行R程序的时候,有时候会出现:需要TRUE/FALSE值的地方不可以用缺少值

这样的错误提示。但是,检查自己的程序,却没发现错误。其实,产生这个错误的原因出现在if语句的返回值上。

  先看下面一个例子:

> for (i in 1:nrow(d)){if (d$phylum[i]=="Cyanobacteria") {d$tax.color[i]<-100}}

 

错误于

if (d$phylum[i] == "Cyanobacteria") { :

 需要TRUE/FALSE值的地方不可以用缺少值

 

原因:

if得到的必须是TRUE/FALSE,我得到了NA

d$phylum=="Cyanobacteria"  发现出来的结果有FALSE,有TRUE,有NA,一检查果真是有空白值

 

解决办法:

d$phylum[is.na(d$phylum)]<-0

> for (i in 1:nrow(d)){if (d$phylum[i]=="Cyanobacteria") {d$tax.color[i]<-100}}

  这也提醒我们,在写if语句时,可以先判断一下是不是会有NA返回值。具体方法见R技巧[25]:R判断NaN

图片展示
 
相关评论
站长推荐