我想做一个简单的函数,通过删除所有小于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值有关,但是我确定数据集中没有这些值
答案 0 :(得分:3)
您得到length(x)
,然后缩短x
,这会引起问题。
也就是说,这不是编写这样的函数的好方法。您应该使用R
的向量化属性来更快地完成此操作。
fun <- function(x) {
x[x >= 0.95]
}