取R中矩阵值的正部分

取R中矩阵值的正部分,r,R,我有两个向量,z,v,我想找到(z-v){+}的值,这意味着如果z大于v,它等于z-v,否则为零 z = c(0.00000000, 0.00000000, 0.05626874, 0.17529181, 0.25865020, 0.27993760, 0.52217908, 0.85310551, 1.13850492, 2.08570299) v= c( 0.00000000, 0.05626874, 0.07096722, 0.17529181, 0.175

我有两个向量,
z
v
,我想找到(z-v){+}的值,这意味着如果z大于v,它等于z-v,否则为零

      z = c(0.00000000, 0.00000000, 0.05626874, 0.17529181, 0.25865020, 0.27993760,
     0.52217908, 0.85310551, 1.13850492, 2.08570299)
     v= c( 0.00000000, 0.05626874, 0.07096722, 0.17529181, 0.17574861, 0.25865020,
     0.27993760, 0.28331125, 0.34191489, 0.52217908, 0.56703446, 0.67147343,
     0.85310551, 1.00063564, 1.13850492, 1.24488131, 1.36113151, 2.08570299,4.12977829)
我可以创建mat1的矩阵,但是我想把(z_ij-v_ij)代替true,否则等于零。我在R怎么做

   mat1 = sapply(1:length(v), function(i) outer(z, v[i], ">"))

好的,这只是显示了两个步骤,还有另一种积极的方式:

d <- outer(z,v,"-")
d <- d*(d>0)

d好的,这只显示了两个步骤,还有另一种方法来做积极的部分:

d <- outer(z,v,"-")
d <- d*(d>0)
d