【问题标题】:Dividing each element from a dataframe by specific elements of a second dataframe将数据帧中的每个元素除以第二个数据帧的特定元素
【发布时间】:2014-06-18 08:54:07
【问题描述】:

我有两个数据框:

x = data.frame(replicate(10,sample(1:6,1000,rep=TRUE)))
y = t(data.frame(apply(x, 2, sum)))

如何将每列 x 中的每个元素除以同名列中 y 中的元素。另外,写 y 的更好方法是什么?

我已经尝试过嵌套应用:

apply(y, 2, function(y){
    sapply(x, function(x) (x/y))
})

有没有更好的办法?

【问题讨论】:

    标签: r apply sapply


    【解决方案1】:

    y 的更好方法是

    y <- colSums(x)
    

    为了“将每列 x 中的每个元素除以 y 中的元素”,您可以尝试

    mapply("/", x, y)
    

    【讨论】:

      【解决方案2】:

      是的,你可以使用scale

      scale(x, center=FALSE, scale=y)
      

      sweep:

      sweep(x, 2, y, FUN='/')
      

      【讨论】:

        猜你喜欢
        • 2015-02-12
        • 2021-11-09
        • 2016-04-02
        • 1970-01-01
        • 2019-08-28
        • 2012-08-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-12
        相关资源
        最近更新 更多