我需要由整数和NA组成的数组Y来比较矩阵,并返回TRUE、FALSE或NA。我在如何写这个方面受到限制--没有循环或者if语句。一定要很简单。问题是,它只比较数组的长度,而不重复矩阵的其余部分;而且,它没有正确地识别假值。
我知道这是我的应用函数,但我不知道如何让apply()自己重复而不需要循环。
answer <- function(x,y){
y <- as.matrix(y)
z <- apply(apply(x,2,`==`,y),1,any)
q <- as.matrix(z)
print(q)
}发布于 2020-06-07 15:50:26
这取决于你如何看待矩阵,但R是一种向量化的语言,你不需要循环来比较不同大小的元素,但要注意方向和循环
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)或者一排排的解决方案--非常丑陋的东西
answer <- function(x,y){
cat('+++++Solution 4+++++\n')
q <- matrix(apply(t(y),1,`==`,t(x)),nrow = 4,byrow = TRUE)
print(q)
}
answer(x,y)https://stackoverflow.com/questions/62247790
复制相似问题