我在這裏遇到問題。 我有一個數據表是這樣的:用條件計算data.table
a <- data.table(a=c(1,2,3,50,100,300,700))
a
1: 1
2: 2
3: 3
4: 50
5: 100
6: 300
7: 700
現在我想創建一個新的列b與b=125-0.25a
,但是用條件是b> = 0。如果b < 0那麼它會給出結果0. 任何人都可以幫助我嗎?
我在這裏遇到問題。 我有一個數據表是這樣的:用條件計算data.table
a <- data.table(a=c(1,2,3,50,100,300,700))
a
1: 1
2: 2
3: 3
4: 50
5: 100
6: 300
7: 700
現在我想創建一個新的列b與b=125-0.25a
,但是用條件是b> = 0。如果b < 0那麼它會給出結果0. 任何人都可以幫助我嗎?
我們可以先創建'b'列,然後爲'b'中小於0的元素賦值(:=
)0值。
a[, b:= 125- 0.25*a][b<0, b:=0]
或者我們可以使用pmax
來獲得預期的輸出。
a[, b:= pmax(125-0.25*a, 0)]
或者
a[, b:= {tmp <- 125 - 0.25*a; (tmp > 0)*tmp}]
你幾乎涵蓋了所有的選項,除了'ifelse'也許 –
@DavidArenburg是的,我想如果我用'data.table'的'ifelse',我會得到一個downvote。 – akrun
大聲笑,你不會,但是'ifelse'在這裏真的沒有必要。 –
那你試試?爲什麼它不起作用? – Heroka