在R中使用不同的规范化方法

时间:2017-05-16 20:26:44

标签: r normalization

我在大约6个月前使用名为Predixion的软件运行了k-means聚类算法。我写了一个R脚本,希望从Predixion中重现相同的结果。但是,结果非常不同。我相信结果是不同的,因为我们对数据进行了不同的标准化。我需要能够为每列使用不同的规范化方法。

account = c("A","B","C", "D","E")
var_num1= c(67,69,71,33,19)
var_num2= c(7175,12018, 6075, 3128, 4002)
var_percent= c(.22,.57,.33,.87,.62)
df = data.frame(account, var_num1,var_num2, var_percent)

我想在列' var_num1'上使用日志规范化。我想对列' var_num2'使用最小/最大标准化。和' var_percent'。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你试过了吗?

df$var_num1 <- scale(df$var_num1)

这将获取一列的值并对其进行缩放。使用其他列和不同的缩放方法也可以完成同样的事情。

编辑:
最小/最大标准化的一种可能性:

df$var_num1_minmax <- lapply(df$var_num1, function(x) (x-min(df$var_num1))/(max(df$var_num1)-min(df$var_num1)))