-
生成测试数据
a1 <- c(“f”,“f”,“b”,“b”,"c,“c”) -
利用nnet包中的函数class.ind
> class.ind(a1)
b c f
[1,] 0 0 1
[2,] 0 0 1
[3,] 1 0 0
[4,] 1 0 0
[5,] 0 1 0
[6,] 0 1 0 -
class.ind代码
class.ind <- function(cl) {
n <- length(cl)
cl <- as.factor(cl)
x <- matrix( 0, n , length(levels(cl)) )
# unclass 返回每个字符在level表中的位置
# 然后按照列计算在向量中的位置
x[n*(unclass(cl)-1) + (1:n)] <- 1
dimnames(x) <- list(names(cl), levels(cl))
x
}