【问题标题】:Replace value in dataframe by value divided by mean of the entire column [duplicate]用值除以整列的平均值替换数据框中的值[重复]
【发布时间】:2020-03-27 22:04:11
【问题描述】:

需要通过将每个值除以整个列的平均值来标准化我的数据,最好使用 dplyr。

假设

inputs <- c(3,5,3,9,12)
mydata = data.frame(inputs) 

我希望将所有被自己替换的值除以平均值,即 6.4。

有什么直接的建议吗?

【问题讨论】:

  • inputs / mean(inputs)...??或mydata %&gt;% mutate(norm_inputs = inputs / mean(inputs))
  • 确实!如果我有几列呢?
  • 使用mutate_at...
  • 找到了副本。只需将 funs() 更改为您的函数 (funs(. / mean(.)))...
  • 如果您想要 2:5 列,那么只需 mydata2 %&gt;% mutate_at(vars(c(2:5)),funs(. / mean(.)))

标签: r dplyr normalization


【解决方案1】:

我们可以在base R 中使用sapply 进行泛化方法

sapply(mydata, function(x) x/mean(x))

如果多于一列,则使用colMeans

mydata/colMeans(mydata)[col(mydata)]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-07
    • 2016-11-16
    • 2019-06-06
    • 2020-12-26
    • 2018-09-18
    • 2021-01-19
    • 1970-01-01
    • 2018-12-14
    相关资源
    最近更新 更多