我有如下所示的数据框架:
Country Year X1 X2 convex1 convex2
UK 2011 100 5
UK 2012 110 5.5
UK 2013 NA 10
UK 2014 115 2
US 2011 NA 10
US 2012 120 11
US 2013 118 9.2
US 2014 NA NA我想要创建两个新的变量来捕捉凸性。这两个变量将应用以下逻辑:
Convex1 if X1>average (按国家分列的X1),则另有1个0
我已经将Convex1固定在
dataa <- data.table(dataa , key = "Country")
dataa[ , convex1 := (X1 ) /mean(X1, na.rm = TRUE), "Country" ]
dataa$convex1var<- ifelse(dataa$convex1>1.1 ,1 ,0)但我想一步一步来做,因为我必须为一长串的vars执行此操作。
Convex2如果X2>= 10连续两年(按国家分列),则另有1 0
对于Convex2,我不知道如何做到这一点。
发布于 2016-04-14 14:58:18
dataa$Convex2<-ifelse( dataa$X2 > lag(dataa$X2, by=Country) &
lag(dataa$X2, by=Country) > lag(dataa$X2,2, by=Country),1,0)https://stackoverflow.com/questions/36604787
复制相似问题