【发布时间】:2011-03-24 00:09:48
【问题描述】:
我有几个数据集,包含 75,000 个观察值和一个 type 变量,其值可以为 0-4。我想为所有类型的每个数据集添加五个新的虚拟变量。我能想到的最佳方法如下:
# For the 'binom' data set create dummy variables for all types in all data sets
binom.dummy.list<-list()
for(i in 0:4){
binom.dummy.list[[i+1]]<-sapply(binom$type,function(t) ifelse(t==i,1,0))
}
# Add and merge data
binom.dummy.df<-as.data.frame(do.call("cbind",binom.dummy.list))
binom.dummy.df<-transform(binom.dummy.df,id=1:nrow(binom))
binom<-merge(binom,binom.dummy.df,by="id")
虽然这可行,但速度非常慢(合并功能甚至崩溃了几次)。有没有更有效的方法来做到这一点?也许这个功能是我不熟悉的包的一部分?
【问题讨论】:
标签: r