Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 测试矩阵的一行是否等于给定向量_R_Matrix_Vector - Fatal编程技术网

R 测试矩阵的一行是否等于给定向量

R 测试矩阵的一行是否等于给定向量,r,matrix,vector,R,Matrix,Vector,如何构造一个函数来计算矩阵mat的任何一行是否等于下面代码中的向量vec: set.seed(000) mat <- matrix(rnorm(20),4,5) vec <- c(1.3297993, -0.9285670, 0.7635935, -0.2992151, 0.4356833) mat[3,] vec mat==vec 此外,如何确定mat中是否至少有一个vec值 注意:mat==vec应等于TRUE,即如果mat-vec类似于以下内容,则mat-vec==0:

如何构造一个函数来计算矩阵mat的任何一行是否等于下面代码中的向量vec:

set.seed(000)
mat <- matrix(rnorm(20),4,5)
vec <- c(1.3297993, -0.9285670,  0.7635935, -0.2992151,  0.4356833)
mat[3,]
vec
mat==vec
此外,如何确定mat中是否至少有一个vec值

注意:mat==vec应等于TRUE,即如果mat-vec类似于以下内容,则mat-vec==0:

compare <- function(mat, vec, tol=1e-5)
{
    ok <- apply(mat, 1, function(v) {
        all(abs(v - vec) < tol)
    })
    any(ok)
}


v <- 1:5
m <- matrix(rnorm(25), nrow=5)
compare(m, v)
# FALSE

m[1,] <- v
compare(m, v)
# TRUE
大概是这样的:

compare <- function(mat, vec, tol=1e-5)
{
    ok <- apply(mat, 1, function(v) {
        all(abs(v - vec) < tol)
    })
    any(ok)
}


v <- 1:5
m <- matrix(rnorm(25), nrow=5)
compare(m, v)
# FALSE

m[1,] <- v
compare(m, v)
# TRUE

首先,由于从第9页开始,您的示例将不起作用

这应该可以做到:

set.seed(000)
mat <- round(matrix(rnorm(20),4,5), digits = 7)
vec <- c(1.3297993, -0.9285670,  0.7635935, -0.2992151,  0.4356833)
要确定mat中是否至少有一个vec值,可以执行以下操作:

length(vec[which(vec %in% mat)])

结果反映了在向量和矩阵之间找到的匹配数

首先,由于从第9页开始,您的示例将不起作用

这应该可以做到:

set.seed(000)
mat <- round(matrix(rnorm(20),4,5), digits = 7)
vec <- c(1.3297993, -0.9285670,  0.7635935, -0.2992151,  0.4356833)
要确定mat中是否至少有一个vec值,可以执行以下操作:

length(vec[which(vec %in% mat)])

结果反映了在向量和矩阵之间找到的匹配数

你什么意思,它不起作用?只是重新检查了一下,对我来说很好。什么意思,它不起作用?只是重新检查了一下,对我来说很好。