【问题标题】:R Normalize Many Columns [duplicate]R规范化许多列[重复]
【发布时间】:2021-03-22 10:32:35
【问题描述】:
data = data.frame(cat = runif(1000), dog = runif(1000), fox = runif(1000), bunny = runif(1000))
normalize_these = c("dog", "bunny")

我希望获得一个名为 dataNEW 的新版本数据,其中“normalize_these”中列出的变量列被归一化,均值等于 0,标准差等于 1。有 data.table 解决方案吗?

【问题讨论】:

  • 将变量转换为均值零和单位 sd 称为标准化。规范化意味着当您将变量转换为 0 到 1 的范围内时。
  • 这能回答你的问题吗? scale in data.table in r

标签: r data.table normalize


【解决方案1】:

尝试scale,如下所示

cbind(data, `colnames<-`(scale(data[normalize_these]), paste0(normalize_these, "NEW")))

如果你想使用data.table,下面可能是一个选项

setDT(data)
data[, paste0(normalize_these, "NEW") := lapply(.SD, scale), .SDcols = normalize_these]

【讨论】:

  • 非常感谢,如果我想添加“NORMALIZED”怎么办,所以我添加了两个新数据列“dogNORMALIZE”和“bunnyNORMALIZED”
猜你喜欢
  • 1970-01-01
  • 2012-09-18
  • 1970-01-01
  • 2021-08-27
  • 2016-10-26
  • 2021-02-16
  • 1970-01-01
  • 2013-01-29
  • 2011-12-07
相关资源
最近更新 更多