我有一個向量y
,這是一系列正整數。對於y
每個值,我想計算:在兩個不同的部分計算函數
z <- 1/y
,- 但元素
y
是1,我需要設置z
爲零。 - 最後,我需要的
z
與零y
是11/y
爲y
一個向量不是1
我怎麼能這樣做?
我有一個向量y
,這是一系列正整數。對於y
每個值,我想計算:在兩個不同的部分計算函數
z <- 1/y
,y
是1,我需要設置z
爲零。z
與零y
是1 1/y
爲y
一個向量不是1我怎麼能這樣做?
用邏輯索引來做這件事非常容易:
z <- 1/y # will have some Inf values but not throw an error
z[y==0] <- 0 # changes the Inf's to 0
使用ifelse
並做一步到位:
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
擴展什麼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)
對不起,我的問題太簡單了。假設y是一個帶有整數的矩陣,計算z <-1/y,如果y是零,則設置z零。我試圖使用ifelse,但得到錯誤:NaNs產生 – zca0 2012-04-29 08:07:52