一段时间以来,我一直在为 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
目标数据要大得多,由整数和 float 组成。 提前致谢!
最佳答案
你可以使用sweep
:
sweep(df, 2, v, FUN="*")
第二个选项是mapply
:
mapply(`*`, df, v)
或转置:
t(t(df)*v)
https://stackoverflow.com/questions/74200924/