Если мы хотим умножить значения первых строк набора данных на соответствующие значения второго набора данных
df1 * df2[row(df1)]
Или на matrix
es
m1 * m2[row(m1)]
или используя sweep
sweep(df1, 1, df2$w, `*`)
sweep(m1, 1, m2[,1], `*`)
data
df1 <- structure(list(x1 = c(1L, 3L, 3L, 4L, 1L, 4L), x2 = c(30L, 40L,
50L, 40L, 20L, 20L), x3 = c(3L, 2L, 7L, 58L, 19L, 5L), x4 = c(43L,
35L, 72L, 63L, 61L, 49L), x5 = c(0L, 0L, 0L, 10L, 10L, 0L)),
class = "data.frame", row.names = c(NA,
-6L))
df2 <- structure(list(w = c(1.080042, 1.083287, 1.141108, 1.191246,
1.117395, 1.081123)), class = "data.frame", row.names = c(NA,
-6L))
m1 <- as.matrix(df1)
m2 <- as.matrix(df2)