Skip to content

Efficiently create dummy

3 messages · Rob Denniker, Dimitris Rizopoulos, Chuck Cleland

#
What's the neat way to create a dummy from a list?
The code below is not replicable, but hopefully self-explanatory...

d$treatment<-rep(1,length(d))

notreat<-c("AR", "DE", "MS", "NY", "TN", "AK", "LA", "MD",  "NC", "OK", "UT", "VA")

#i would really like this to work:
d$treatment[d$st==any(notreat)]<-0

#but instead i resort to this
for (i in 1:length(notreat)) {
temp.st <- notreat[i]
d$treatment[d$st==temp.st]<-0
i<-i+1 }


Thanks, list!
#
well, you can first define a factor, and the use model.matrix(), e.g.,

fc <- factor(c("AR", "DE", "MS", "NY"))
model.matrix(~ fc)


for more info check ?model.matrix(), e.g., if you want to change the 
contrasts.

I hope it helps.

Best,
Dimitris
Rob Denniker wrote:

  
    
#
On 3/23/2009 5:44 AM, Rob Denniker wrote:
d$treatment <- as.numeric(!(d$st %in% notreat))