¿Cuál es la forma correcta de multiplicar el cuadro de datos por el vector?
Estoy tratando de multiplicar un marco de datosdf
por un vectorv
, para que el producto sea un marco de datos, donde eli
-la fila está dada pordf[i,]*v
. Puedo hacer esto, por ejemplo, por
df <- data.frame(A=1:5, B=2:6); v <- c(0,2)
as.data.frame(t(t(df) * v))
A B
1 0 4
2 0 6
3 0 8
4 0 10
5 0 12
Estoy seguro de que tiene que haber másEstilo r enfoque (y uno muy simple!), pero nada me viene a la mente. Incluso intenté algo como
apply(df, MARGIN=1, function(x) x*v)
Pero aún así, construcciones no legibles comoas.data.frame(t(.))
son requeridos.
¿Cómo puedo encontrar una solución eficiente y elegante aquí?