将列的每个元素与另一个 data.frame
中的每个值相乘的最佳方法是什么?
我想将 df1[ ,1]
与 df2[1, ]
相乘,并创建维度为5行x 5列的 df3
.
df1 <- data.frame(V1 = c(10, 20, 30, 40, 50), V2=c(5, 10, 15, 20, 25))
> df1
V1 V2
1 10 5
2 20 10
3 30 15
4 40 20
5 50 25
df2 <- data.frame(Albany=0.5, Birmingham=1.0, Tuscany=1.5,
NewYork = 2, Atlanta = 2.5, Alabama = 3)
> df2
Albany Birmingham Tuscany NewYork Atlanta Alabama
1 0.5 1 1.5 2 2.5 3
输出应该有一个列为每个地方和五行如下:
Albany Birmingham Tuscany NewYork Atlanta Alabama
1 5 10 15 20 25 30
2 10 20 30 40 50 60
3 15 30 45 60 75 90
4 20 40 60 80 100 120
5 25 50 75 100 125 150
在我的实际数据集中,df1有9500行,df2有210列 . 所以我正在寻找的输出数据框是nrow(9500)x ncol(210)
2 回答
子集data.frame的行返回data.frame . 因此,你需要
unlist
来获取一个向量:您可以使用
要直接获取矩阵,请使用: