r中的LabelEncoder实现

时间:2016-11-27 05:03:53

标签: r

G $ name - 数据框的字符列

labels_name <- unique(G$name)

LabelEncoder <- function(value, labels) {
   r <- as.numeric(which(labels == value))
   returnValue(r)
}

G$name1 <- LabelEncoder(G$name, labels_name)

执行上面的代码会产生下一个错误:

$<-.data.frame中的错误(*tmp*,&#34; name1&#34;,value = c(1,4,7,10,11,:   替换有100650行,数据有302194 另外:警告信息: 在标签==值:   较长的物体长度不是较短物体长度的倍数

出了什么问题?

1 个答案:

答案 0 :(得分:1)

我通过下一个方式解决了我的问题:

因为G $ name是一个向量,所以我使用了下一个附加函数

LabelEncoder1 <- function(x, labels) {
    r <- sapply(x, LabelEncoder, labels)
}

G$name1 <- LabelEncoder1(G$name, labels_name)