我再次詢問這類問題道歉,但將R的世界是如此之大,有時我會感到失落,即使我看過一些與R. 相關的最好的書,我有以下DB如何根據其他變量的條件生成二進制變量?
的ID=rep((1:3),3)
x<-as.Date("2013-1-1")
y<-as.Date("2013-1-2")
z<-as.Date("2013-1-3")
DATE<-c(x,x,x,y,x,y,z,z,z)
TRAP<-c(1,1,1,3,2,3,2,1,3)
IN<-data.frame(ID,DATE,TRAP)
,我想以產生根據以下條件的二進制變量(RESULT):如果日期和TRAP是對於不同的ID相同,則結果>ý否則結果> N,這樣
RESULT<-c("y","y","y","y","n","y","n","n","n")
OUT<-cbind(IN,RESULT)
我認爲應該使用ifelse
函數,但我不知道如何以明確每個ID的平等控制條件... ... 一如既往,每一個建議非常感謝!
很抱歉,但我無法找到背後的'RESULT'邏輯... – juba 2013-04-22 09:51:46
我也沒有,但這似乎很接近:'庫(plyr); IN $ ID2 < - rep(1:3,each = 3); ddply(IN,。(ID2),transform,RESULT =(TRAP == TRAP [1]&DATE == DATE [1]))' – Roland 2013-04-22 09:57:14
@juba,ops last y was wrong in the result,so we have edit the result 。基本上,如果陷阱和日期相同,結果將是y,否則n。我希望我很清楚,對錯誤抱歉! – stefano 2013-04-22 09:57:51