我的任务是编写一个函数,以检查是否最多每年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)
}
}
更新:每行数据的期望结果是单个TRUE
或FALSE
。