y_yuan2009 Just give it a try standardize<-function(x) {#--for stardard normal x1<-(x-mean(x))/sd(x) x2<-x1/(max(x1)-min(x1)) return(x2) }
yihui 我觉着楼主肯定有别的意思…… 回复 第2楼 的 y_yuan2009:这个标准化不太对,得到的x2的范围不是严格的[-1,1](代码中有一处笔误),其实只需要2 * (x - min(x)) / (max(x) - min(x)) - 1就可以了。
foison 回复 第3楼 的 谢益辉: Nothing really special. Just a test to see if I can manage an English post. My Chinese posts were treated as spam all the time by the system. 我不能发中文帖子。我现在每次发帖得先写成英语发表,然后点编辑,删除原来的内容,改成中文。我很有写垃圾广告的潜质么?[s:12] 肯定是那些邪恶的人默默模仿我的风格未遂,于是在某个黄昏的早晨开始狂发垃圾邮件。。。结果我被杯具了。 不过刚才那个简单问题我敢赌十个鸡蛋灌饼这里不是每个人都能回答上来的,老谢显然是对的。
yanlinlin82 带着无穷来做标准化是没有意义的。要处理无穷,还是得先把无穷剔除后来计算: <br /> > x <- c(3, -5, 0, Inf, -Inf, NA)<br /> > 2 * (x - min(x[is.finite(x)])) / diff(range(x[is.finite(x)])) - 1<br /> [1] 1.00 -1.00 0.25 Inf -Inf NA<br /> </p>
king64 补充说明: 如果数据已经固定了,可以按照10楼的方法把无穷剔出。 但是,如果数据不是固定的, 或者有两组或多组数据需要统一标准化,然后进行比较或者汇总出一个综合指标的话,应该如何处理? 10楼的公式不带有普遍性。