ベクトルはy
です。これは一連の正の整数です。 y
の各値について、私は計算したい:2つの異なる部分の関数を計算する
z <- 1/y
、- しかし
y
が、私はz
がゼロに設定する必要が1であることの要素について。 - 最後に、私は私はそれをどのように行うことができます
y
ゼロとz
のベクトルが1
y
のための1と
1/y
ではありません必要がありますか?
ベクトルはy
です。これは一連の正の整数です。 y
の各値について、私は計算したい:2つの異なる部分の関数を計算する
z <- 1/y
、y
が、私はz
がゼロに設定する必要が1であることの要素について。y
ゼロとz
のベクトルが1
y
のための1と
1/y
ではありません必要がありますか?
を言うことができます論理的なインデックス作成でこれを行うのはとても簡単です:
z <- 1/y # will have some Inf values but not throw an error
z[y==0] <- 0 # changes the Inf's to 0
使用ifelse
とワンステップでそれを行う:Andrieが行列に言ったことの拡張
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
...
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)
申し訳ありませんが、私の質問はあまりにも単純化されました。 yは、整数を持つ行列です.z <-1/yを計算し、yがゼロの場合はzをゼロに設定します。 ifelseを使用しようとしましたが、エラーが発生しました:NaNが生成されました – zca0