一段時間以來,我一直在為 R 中的一項任務苦苦掙扎,這似乎很容易。
假設這是我的樣本資料:
df <- data.frame(a=c(2,2,7),b=c(1,4,3),c=c(9,5,3))
v <- c(1,2,3)
現在我想將每一列乘以相應的向量元素,例如第一列乘以v[1],第二列乘以v[2]等等。
預期輸出:
a b c
1 2 2 27
2 2 8 15
3 7 6 9
目標資料要大得多,由整數和浮點陣列成。先感謝您!
uj5u.com熱心網友回復:
您可以使用sweep:
sweep(df, 2, v, FUN="*")
第二種選擇是mapply:
mapply(`*`, df, v)
或轉置:
t(t(df)*v)
uj5u.com熱心網友回復:
你可以試試col
> v[col(df)] * df
a b c
1 2 2 27
2 2 8 15
3 7 6 9
uj5u.com熱心網友回復:
apply(df, 1, function(x) x * v) |> t()
或者
t(apply(df, 1, function(x) x * v))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/519464.html
標籤:r数据框
