r - 规范化 R 中的每一列
问题描述
标准化每一列。
数据从具有 x 和 y 的第一行开始,然后以数字继续,我相信这就是问题所在。
> normalize <- function(number) {
+ return ((number - min(number)) / (max(number) - min(number)))
+ }
> data$V1_norm<-normalize(data$V1)
> data$V2_norm<-normalize(data$V2)
> data$V1_norm<-normalize(data$V1)
Error in Summary.factor(c(69L, 1L, 22L, 9L, 29L, 44L, 65L, 21L, 61L, 4L, :
‘min’ not meaningful for factors
> data$V2_norm<-normalize(data$V2)
Error in Summary.factor(c(53L, 27L, 46L, 36L, 33L, 41L, 8L, 15L, 12L, :
‘min’ not meaningful for factors
解决方案
代码看起来不错。我相信您的问题出在数据对象中的V1_norm和V2_norm中。这两个变量都是因素。
normalize <- function(number) {
return ((number - min(number)) / (max(number) - min(number)))}
data$V1_norm <- normalize(data$V1)
data$V2_norm <- normalize(data$V2)
data <- data.frame(V1_norm = c(6,1,10,2), V2_norm = c(10,20,100,40))
normalize(data$V1) # returns 0.5555556 0.0000000 1.0000000 0.1111111
normalize(data$V2) # returns 0.0000000 0.1111111 1.0000000 0.3333333
在你的数据集中试试这个:
class(data$V1)
class(data$V2)
小心诸如.numeric() 之类的函数,您应该仔细检查数据中的不一致之处。
推荐阅读
- go - How to generate entropy by myself? - RSA Golang
- javascript - 如何使用 svg 矩阵函数通过正确的变换数学来缩放 svg
- java - Android Studio:活动仅在您第二次调用 finish() 时完成
- json - JavaFX:如何在循环中设置组合框和切换按钮的文本?
- python-3.x - Python 3.x:尝试遍历列表中的每个项目,然后计算项目是否在某些时间间隔内减少或增加
- c - 从C中的文件中读取unicode字符
- multithreading - 多线程:chromedriver 不在第二个窗口中打开 url
- c# - 无法加载文件或程序集 'System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 或其依赖项之一
- javascript - 如何在手风琴中打开下一个标签?
- spring-boot - 让 Jackson 在 Spring Boot 中忽略控制器级别的某些字段