R 将数据帧中的每个元素除以第二个数据帧的特定元素

R 将数据帧中的每个元素除以第二个数据帧的特定元素,r,apply,sapply,R,Apply,Sapply,我有两个数据帧: 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)) }) 有更好的方法吗?是的,您可以使用比例: scale(x, ce

我有两个数据帧:

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))
})

有更好的方法吗?

是的,您可以使用
比例

scale(x, center=FALSE, scale=y)
或扫掠:

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

编写
y
的更好方法是

y <- colSums(x)
mapply("/", x, y)