功能非常简单时出错

时间:2018-06-21 19:59:26

标签: r function

我想做一个简单的函数,通过删除所有小于0.95的值来过滤数组中的所有值。

刚刚编辑。.想知道出于教育目的的答案

这是我所拥有的:

significance <- function(x){
i<- 1
 while(i <= 345){

   if(x[i] < 0.95){
     x <- x[-i]
     i<- i+1

   }else{
     i<- i+1

   }

 }
  return(x)
}

但是每当我运行它时,都会显示以下错误:

  

if(x [i] <0.95){:需要TRUE / FALSE时缺少值

一些线程说,因为它与NA值有关,但是我确定数据集中没有这些值

1 个答案:

答案 0 :(得分:3)

您得到length(x),然后缩短x,这会引起问题。

也就是说,这不是编写这样的函数的好方法。您应该使用R的向量化属性来更快地完成此操作。

fun <- function(x) {
  x[x >= 0.95]
}