【发布时间】:2018-07-25 23:45:04
【问题描述】:
我最近开始使用 are,我想扩展我的数据矩阵。我在这里找到了一种方法Scale a series between two points
x <- data.frame(step = c(1,2,3,4,5,6,7,8,9,10))
normalized <- (x-min(x))/(max(x)-min(x))
由于我的数据由几列组成,因此我只想使用函数对某些列进行规范化。
normalized <- function(x) (x- min(x))/(max(x) - min(x))
x[] <- lapply(x, normalized)
此外,我意识到我的数据集中的一些数据点等于 0,因此所提供的公式不再适用。我在这里添加了一个建议的扩展:scaling r dataframe to 0-1 with NA values
normalized <- function(x, ...) {(x - min(x, ...)) / (max(x, ...) - min(x, ...))}
但我不明白我必须如何编码。例如,我希望将第 4、5、6 和 10 列标准化,但我希望将其余列保留在数据集中? 我试过第 4 列:
data <- lapply(data[,4],normalized,na.rm= TRUE)
但它不起作用(而不是数据框,而是一个列表:-(...),有人知道我该如何解决它吗?
非常感谢!
【问题讨论】:
-
您想要的输出到底是什么?请将此添加到您的问题中。
-
data[, c(4, 5, 6, 10)] <- lapply(data[, c(4, 5, 6, 10)], normalized)? -
非常感谢!!它有效,实际上超级简单!但我是个新手:-D
标签: r normalization