Функция для проверки, уменьшается ли каждый элемент вектора на 1 или более - PullRequest
0 голосов
/ 14 декабря 2018

Моя задача - написать функцию, которая проверяет, является ли самое подходящее предположение для моего набора данных одноэтапным падением в год.Другими словами, я хочу вернуть логический показатель FALSE, если среднее падение баллов превышает 1 в год, и логический показатель TRUE, когда среднее падение баллов составляет 1 в год.

Пример набора данных:

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)
    }
}

ОБНОВЛЕНИЕ: желаемый результат - один TRUE или FALSE для каждой строки данных.

...