我再次询问这类问题道歉,但将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