R 矩阵中是否存在向量?

R 矩阵中是否存在向量?,r,matrix,vector,R,Matrix,Vector,如何检查矩阵中是否存在向量。向量大小为2。我有一个方法,但我想要矢量化/更快的方法 dim(m) [1] 30 2 x = c(1, -2) for(j in 1:nrow(m)){ if ( isTRUE(as.vector(x[1]) == as.vector(m[j,1])) && as.vector(x[2] == as.vector(m[j,2]) )) { print(TRUE) } } 注意,x=c(1,-2)与矩阵中的-2,1不同 试试看

如何检查矩阵中是否存在向量。向量大小为2。我有一个方法,但我想要矢量化/更快的方法

dim(m)
[1] 30  2

x = c(1, -2)

for(j in 1:nrow(m)){
    if ( isTRUE(as.vector(x[1]) == as.vector(m[j,1])) && as.vector(x[2] == as.vector(m[j,2]) )) { 
print(TRUE) 
  }
}
注意,x=c(1,-2)与矩阵中的-2,1不同

试试看

m<-matrix(rnorm(60),30)
x<-m[8,]
m[9,]<-c(x[2],x[1]) # to prove 1,-2 not same -2,1

apply(m,1,function(n,x) all(n==x),x=x)
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[24] FALSE FALSE FALSE FALSE FALSE FALSE FALSE
如果使用akrun的数据运行此代码

x <- c(1, -2)
set.seed(24)
m <- matrix(sample(c(1,-2,3,4), 30*2, replace=TRUE), ncol=2)

any(apply(m,1,function(n,x) all(n==x),x=x))
[1] TRUE
x试试看

如果使用akrun的数据运行此代码

x <- c(1, -2)
set.seed(24)
m <- matrix(sample(c(1,-2,3,4), 30*2, replace=TRUE), ncol=2)

any(apply(m,1,function(n,x) all(n==x),x=x))
[1] TRUE
x试试看

如果使用akrun的数据运行此代码

x <- c(1, -2)
set.seed(24)
m <- matrix(sample(c(1,-2,3,4), 30*2, replace=TRUE), ncol=2)

any(apply(m,1,function(n,x) all(n==x),x=x))
[1] TRUE
x试试看

如果使用akrun的数据运行此代码

x <- c(1, -2)
set.seed(24)
m <- matrix(sample(c(1,-2,3,4), 30*2, replace=TRUE), ncol=2)

any(apply(m,1,function(n,x) all(n==x),x=x))
[1] TRUE

x如果我们比较
矩阵('m')的行与'm'的列数相同的'x',我们可以复制'x'(
x[col(m)]
)使长度相同,比较(
!=
),得到
行和。如果特定行的和为0,则表示
向量中的所有值都与该行的“m”匹配。求反(
)将
0
转换为
TRUE
,并将所有其他值转换为
FALSE

indx1 <- !rowSums(m!=x[col(m)])
如果这只是为了找到一个
TRUE/FALSE
,我们可以将
任何
包装为'indx1'或'indx2'

数据
x如果我们比较
矩阵('m')的行与'm'的列数相同的'x',我们可以复制'x'(
x[col(m)]
)使长度相同,比较(
!=
),得到
行和。如果特定行的和为0,则表示
向量中的所有值都与该行的“m”匹配。求反(
)将
0
转换为
TRUE
,并将所有其他值转换为
FALSE

indx1 <- !rowSums(m!=x[col(m)])
如果这只是为了找到一个
TRUE/FALSE
,我们可以将
任何
包装为'indx1'或'indx2'

数据
x如果我们比较
矩阵('m')的行与'm'的列数相同的'x',我们可以复制'x'(
x[col(m)]
)使长度相同,比较(
!=
),得到
行和。如果特定行的和为0,则表示
向量中的所有值都与该行的“m”匹配。求反(
)将
0
转换为
TRUE
,并将所有其他值转换为
FALSE

indx1 <- !rowSums(m!=x[col(m)])
如果这只是为了找到一个
TRUE/FALSE
,我们可以将
任何
包装为'indx1'或'indx2'

数据
x如果我们比较
矩阵('m')的行与'm'的列数相同的'x',我们可以复制'x'(
x[col(m)]
)使长度相同,比较(
!=
),得到
行和。如果特定行的和为0,则表示
向量中的所有值都与该行的“m”匹配。求反(
)将
0
转换为
TRUE
,并将所有其他值转换为
FALSE

indx1 <- !rowSums(m!=x[col(m)])
如果这只是为了找到一个
TRUE/FALSE
,我们可以将
任何
包装为'indx1'或'indx2'

数据
x