r - 如何按列最好地规范化 R 中的数据框?

标签 r average normalization

我有一个像下面这样的数据集,我想按列对其进行归一化(0 到 1)。

我目前拥有的:

        2015 Value      2014 Value      2013 Value
China           500             400             450
Germany         890             760             700
Italy           240             210             200

如果有什么结果会很棒:

            2015 Value      2015 Normed     2014 Value      2014 Normed     2013 Value      2013 Normed
China           500             0.5             400             0.5             450             0.5
Germany         890             1.0             760             1.0             700             1.0
Italy           240             0.0             210             0.0             200             0.0

在这一步之后,我想对“总平均值”中的每个 Normed 列进行平均。

我已经尝试了一些方法,但我没有看到如何按列应用函数,每个输出都有一个新列。 lapply 函数似乎是正确的轨道,但我不确定如何最好地使用它。 (我是 R 的新手,正在努力学习。)

非常感谢您的帮助。很抱歉回答基本问题!

最佳答案

我们可以使用 lapply 遍历列,进行归一化,cbind 与原始数据集列交替使用 Map 然后 cbind list 元素到 data.frame

lst <- lapply(df[-1], function(x) round((x-min(x))/(max(x)-min(x)), 1))

res <- cbind(df[1], do.call(cbind.data.frame, Map(cbind , df[-1], lst)))
names(res)[-1] <- rbind(names(df)[-1], sub("Value", "Norm", names(df)[-1]))
res
#   Country 2015 Value 2015 Norm 2014 Value 2014 Norm 2013 Value 2013 Norm
#1   China        500       0.4        400       0.3        450       0.5
#2 Germany        890       1.0        760       1.0        700       1.0
#3   Italy        240       0.0        210       0.0        200       0.0

数据

df <- structure(list(Country = c("China", "Germany", "Italy"), `2015 Value` = c(500L, 
890L, 240L), `2014 Value` = c(400L, 760L, 210L), `2013 Value` = c(450L, 
700L, 200L)), .Names = c("Country", "2015 Value", "2014 Value", 
"2013 Value"), class = "data.frame", row.names = c(NA, -3L))

关于r - 如何按列最好地规范化 R 中的数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43698947/

相关文章:

r - ncvar_get "cannot allocate vector of size"对于 netcdf4 子集,无论多小

r - 在R中安装最新版本的xgboost时出错

python - 基于另一列的滚动平均值

python - 如何根据高斯分布制作环

mysql - 数据库逻辑问题,为事件设置通行证

r - 无法安装模块,无法分配内存错误?

r - 从 Googlesheets 导入时,返回一个我无法在 R 中转换为日期的列表

function - 有关按月份和地区分组的总平均值的问题 - Google 表格

mysql - 优化查询以通过内连接在 MySQL 中查找平均值

image-processing - 不同尺度的 HOG 特征