y
一連の正の整数であるvectorがあります。の各値についてy
、計算したい:
z <- 1/y
、- しかし、1 である要素の
y
場合、設定する必要があるのz
は 0 です。 z
最後に、ゼロy
が 1 であり1/y
、 1 でない場合のベクトルが必要y
です。
どうやってやるの?
y
一連の正の整数であるvectorがあります。の各値についてy
、計算したい:
z <- 1/y
、y
場合、設定する必要があるのz
は 0 です。z
最後に、ゼロy
が 1 であり1/y
、 1 でない場合のベクトルが必要y
です。どうやってやるの?
使用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
論理インデックスを使用すると、これを行うのは非常に簡単です。
z <- 1/y # will have some Inf values but not throw an error
z[y==0] <- 0 # changes the Inf's to 0
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)