0

私は 2 つのベクトルを持っておりzv(z- v)_{+} の値を見つけたいと考えています。これは、z が v よりも大きい場合は zv に等しく、そうでない場合はゼロであることを意味します。

      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 の行列を作成できますが、 true の代わりに (z_ij - v_ij) を配置し、それ以外の場合はゼロに等しくしたいと考えています。Rでこれを行うにはどうすればよいですか?

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

1 に答える 1

5

さて、これは両方のステップを示していますが、プラスの部分を取る別の方法があります。

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

ああ、2 行目の他のバージョン (削除された回答) は:d[d<0] <- 0でした。

于 2013-05-15T03:49:56.110 に答える