0

y一連の正の整数であるvectorがあります。の各値についてy、計算したい:

  • z <- 1/y
  • しかし、1 である要素のy場合、設定する必要があるのzは 0 です。
  • z最後に、ゼロyが 1 であり1/y、 1 でない場合のベクトルが必要yです。

どうやってやるの?

4

3 に答える 3

4

使用ifelseして、1つのステップで実行します。

y <- 1:5
z <- ifelse(y==1, 0, 1/y)

cbind(y, z)
     y         z
[1,] 1 0.0000000
[2,] 2 0.5000000
[3,] 3 0.3333333
[4,] 4 0.2500000
[5,] 5 0.2000000
于 2012-04-29T07:56:58.107 に答える
2

論理インデックスを使用すると、これを行うのは非常に簡単です。

z <- 1/y  # will have some Inf values but not throw an error
z[y==0] <- 0   # changes the Inf's to 0
于 2012-04-29T13:01:02.737 に答える
1

Andrie が言ったことをマトリックスに拡張します...

y <- matrix(1:25, ncol=5) # define the matrix y
z <- matrix(ifelse(y==1, 0, 1/y), ncol=ncol(y))

または私はただ言うことができます

z <- matrix(ifelse(y==1, 0, 1/y), ncol=5)
于 2012-04-29T08:24:33.810 に答える