我需要将两个df相乘以创建所有可能的解决方案,以用于Tableau场景。
方案如下:
我有一个汽车及其相关MPG的df1,以及一个邮政编码的df2,以及它们与固定点的相关距离(计算碳足迹)。创建df3后,我可以对整个df做更多的数学运算以得出最终指标。
我在下面尽了最大的努力来代表每个df的样本以及我要创建的结果df3。 df1是15,000行,而df2是535行,这意味着df3将有8m行。
在Tableau中可能有更好的方法;但是,我对R更满意。
DF1
mpg|year|make |model
--------------------
21|1985|dodge|charger
19|1993|Audi |100
DF2
zipcode|distace
---------------
20015 | 8.91
20020 | 12.72
DF3
mpg|year|make |model |zipcode|distance
-----------------------------------------
21|1985|dodge|charger| 20015 |8.91
19|1993|Audi |100 | 20015 |8.91
21|1985|dodge|charger| 20020 |12.72
19|1993|Audi |100 | 20020 |12.72
答案 0 :(得分:3)
我们可以使用crossing
library(tidyr)
crossing(DF1, DF2)
# mpg year make model zipcode distance
#1 21 1985 dodge charger 20015 8.91
#2 21 1985 dodge charger 20020 12.72
#3 19 1993 Audi 100 20015 8.91
#4 19 1993 Audi 100 20020 12.72
DF1 <- structure(list(mpg = c(21L, 19L), year = c(1985L, 1993L), make = c("dodge",
"Audi"), model = c("charger", "100")), class = "data.frame", row.names = c(NA,
-2L))
DF2 <- structure(list(zipcode = c(20015L, 20020L), distance = c(8.91,
12.72)), class = "data.frame", row.names = c(NA, -2L))