R 矩阵中是否存在向量?
如何检查矩阵中是否存在向量。向量大小为2。我有一个方法,但我想要矢量化/更快的方法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不同 试试看
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