比较没有循环的矩阵数组

问题描述 投票:0回答:1

我需要一个整数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
1个回答
1
投票

这取决于您如何看待矩阵,但是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)

应该解决您的问题

© www.soinside.com 2019 - 2024. All rights reserved.