我需要一个整数Y和NA的数组Y才能与矩阵比较并返回TRUE,FALSE或NA。我在如何编写此代码方面受限制-没有循环或if语句。它必须非常简单。问题是它只比较数组的长度,而不在矩阵的其余部分重复。同样,它无法正确识别FALSE值。
我知道这是我的apply函数,但我不知道如何使apply()
自行重复而不循环。
answer <- function(x,y){
y <- as.matrix(y)
z <- apply(apply(x,2,`==`,y),1,any)
q <- as.matrix(z)
print(q)
}
这取决于您如何看待矩阵,但是R是主要是矢量化的语言,不需要循环就可以比较不同大小的元素,但是要注意方向和回收利用。>
answer <- function(x,y){ cat('+++++Solution 4+++++\n') q <- t(x) == y print(q) } x <- matrix(c(1,0,1,0,1,1,1,1,0,1,0,1), nrow=4, ncol=4) y <- c(1, 1, 1, NA) answer(x,y)
或
answer <- function(x,y){ cat('+++++Solution 4+++++\n') q <- x == y print(q) } x <- matrix(c(1,0,1,0,1,1,1,1,0,1,0,1), nrow=4, ncol=4) y <- c(1, 1, 1, NA) answer(x,y)
应该解决您的问题