【发布时间】:2015-10-01 10:36:22
【问题描述】:
我想比较两个矩阵
A B C
A 1 1 0
B 0 1 -1
C 1 0 0
A B C
A 1 -1 0
B 0 -1 -1
C 1 0 1
所以输出应该是
A B C
A 0 -1 0
B 0 -1 0
C 0 0 1
matrix 1 == matrix 2 的值将是 0,matrix1 != matrix2 的值将被分配 matrix2。
【问题讨论】:
我想比较两个矩阵
A B C
A 1 1 0
B 0 1 -1
C 1 0 0
A B C
A 1 -1 0
B 0 -1 -1
C 1 0 1
所以输出应该是
A B C
A 0 -1 0
B 0 -1 0
C 0 0 1
matrix 1 == matrix 2 的值将是 0,matrix1 != matrix2 的值将被分配 matrix2。
【问题讨论】:
您可以与mat1==mat2进行“逐项”比较,然后根据结果输入您想要的数字:
如果 mat1 和 mat2 是您的矩阵:
> ifelse(mat1==mat2, 0, mat2)
# A B C
# A 0 -1 0
# B 0 -1 0
# C 0 0 1
根据 cmets 进行编辑
如果您还想知道哪个百分比的值不相等,您可以这样做:
eq <- mat1==mat2 # avoid to later compute this twice
ifelse(eq, 0, mat2) # get the desired matrix
round(sum(!eq)/length(eq)*100, 2) # get the percentage of non equal values
#[1] 33.33
【讨论】:
sum(mat1!=mat2)/length(mat2)*100