检查每个向量元素是否减少1或更多的功能

时间:2018-12-13 22:41:42

标签: r if-statement user-defined-functions logical-operators

我的任务是编写一个函数,以检查是否最多每年1个阶段的下降是否适合我的数据集。换句话说,如果平均得分每年下降超过1,而我想返回FALSE的逻辑指标,而当平均得分每年下降为1时,我将返回TRUE的逻辑指标。

数据集的示例是:

score <- matrix(c(8,rep(NA,6),7,NA,NA,3,NA,9,9,
 6, 6, NA, NA,9,9,8,NA,NA,7,rep(NA,4),
rep(NA,9),8,NA,5,7,rep(NA,1),
rep(NA,8),7,3,rep(NA,4),
rep(NA,5),9,rep(NA,3),7,NA,NA,6,6),nrow=5,byrow=TRUE)
colnames(score) <- paste("Year",2003:2016,sep="")
rownames(score) <- 1:5
score 

我对从哪里开始很茫然,但是这是在插入函数之前的尝试:

ifelse(score[score[i] - score[1+i,]=1], TRUE, FALSE)

毫不奇怪,这会显示一条错误消息:

Error: unexpected '=' in "ifelse(score[score[i] - score[1+i,]="

这是另一种尝试,运行时会产生错误消息:

Error in 1:n : argument of length 0

check2 = function(x) {
    n = ncol(x)
    for(i in 1:n)
        if(x[x[1,] - x[1+i,] == 1]){
        return(TRUE)
    }else{
        return(FALSE)
    }
}

更新:每行数据的期望结果是单个TRUEFALSE

0 个答案:

没有答案