假设我在 a 中有一个列,matrix
如下data.frame
所示:
df <- data.frame(col1=sample(letters[1:3], 10, TRUE))
我想将其扩展到多列,列中的每个级别一个,0/1 条目表示每一行是否存在级别
newdf <- data.frame(a=rep(0, 10), b=rep(0,10), c=rep(0,10))
for (i in 1:length(levels(df$col1))) {
curLetter <- levels(df$col1)[i]
newdf[which(df$col1 == curLetter), curLetter] <- 1
}
newdf
我知道有一个简单聪明的解决方案,但我不知道它是什么。我试过expand.grid
了df
,它会按原样返回。同样melt
在原样退回的reshape2
包裹中。我也尝试过,但它抱怨尺寸不正确或未定义的列。df
df
reshape