1
我有一個名爲newdata
的數據框。它有兩列,分別命名爲BONUS
和GENDER
。以下兩個代碼之間的區別
當我寫在r
下面的代碼:
> newdata <- within(newdata,{
PROMOTION=ifelse(BONUS>=1500,1,0)})
它的工作,雖然我還沒有使用循環在這裏,但下面的代碼不無環運行。爲什麼?
> add <- with(newdata,
if(GENDER==F)sum(PROMOTION))
Warning message:
In if (GENDER == F) sum(PROMOTION) :
the condition has length > 1 and only the first element will be used
我的問題是爲什麼在第一個代碼中所有元素都被使用了?
這已被問過[這裏](http://stackoverflow.com/questions/17252905/else-if-vs-ifelse/17253069#17253069) – Metrics
[**這是一個非常有趣的職位'if-else' **](http://stackoverflow.com/questions/16275149/does-ifelse-really-calculate-both-of-its-vectors-every-time-is-it-slow) ,以防你有興趣知道更多。 – Arun