在保持分类列的同时规范化数据框

时间:2018-03-27 13:46:36

标签: r

非常新的r。

我正在尝试将矩阵中的多个变量标准化,除了最后一列有一个分类因子变量(在这种情况下是好/不好)。

我有没有办法在不影响分类列的情况下规范化数据?我试图在保持分类列的同时进行规范化,但似乎无法再将其添加回来。

minimum <- apply(mywines[,-12],2,min) 
maximum <- apply(mywines[,-12],2,max) 
mywinesNorm <- scale(mywines[,-12],center=minimum,scale=(maximum-minimum))

我仍然需要第12列来构建有监督的模型。

1 个答案:

答案 0 :(得分:0)

简短版本是您可以使用cbind简单地重新附加列。然而,它只是稍微复杂一点。 scale返回矩阵而非数据框。为了混合数字和因子,您需要data.frame,而不是矩阵。因此,在cbind之前,您需要将缩放后的矩阵转换回data.frame。

mywinesNorm = cbind(as.data.frame(mywinesNorm), mywines[ ,12]) 

另一种方法是只更改数据:

mywines[ ,12] = scale(mywines[ ,12])