This question already has answers here:
Multiply columns in a data frame by a vector

(3个答案)



What is the right way to multiply data frame by vector?

(6个答案)


4年前关闭。




我有以下数据框和向量:
dframe <- as.data.frame(matrix(1:9,3))
vector <- c(2,3,4)

我想将dframe的每一列乘以vector的相应值。这不会做:
> vector * dframe
  V1 V2 V3
1  2  8 14
2  6 15 24
3 12 24 36
dframe的每个乘以vector的相应值,而不是每个。有什么惯用的解决方案,还是我陷入了for周期?

最佳答案

这是另一个使用sweep的选项

sweep(dframe, 2, vector, "*")
#  V1 V2 V3
#1  2 12 28
#2  4 15 32
#3  6 18 36

或使用col
dframe*vector[col(dframe)]

关于r - 将数据帧的每一列乘以向量的相应值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43189087/

10-12 17:39