Я пытаюсь умножить фрейм данных df
на вектор v
, так что продукт представляет собой кадр данных, где i
-я строка задается df[i,]*v
. Я могу это сделать, например,Каков правильный способ умножения кадра данных по вектору?
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
Я уверен, что там должен быть более R-стиль подход (и очень простой!), Но ничего не приходит на мой взгляд. Я даже пытался что-то вроде
apply(df, MARGIN=1, function(x) x*v)
, но до сих пор, не читаемых конструкции типа as.data.frame(t(.))
требуется.
Как найти эффективный и элегантный обходной путь здесь?
Почему нужно быть data.frame? Если у вас есть все числовые элементы, обычно имеет смысл использовать матрицу. –