我是R的新手,我可能很難提問我的問題。請多多包涵。從其他數據幀的功能創建新的數據幀
我有兩個數據幀。讓我們假設爲便於說明:
DF1
列代表類型的收益:玉米,燕麥,小麥等 行代表一年中的一個月,一月,二月,等 元素代表在該特定月份購買的增益類型的每噸價格。
DF2代表國家
專欄:西班牙,智利,墨西哥等 該幀的行表示額外的費用來處理這個國家,也許: 包裝成本,運輸成本,國家的進口稅,每個國家的檢查費用等。
現在我想建立一個第三數據幀:
DF3
它是代表穀物(例如10%的玉米,50%的燕麥的組合的總成本,.. )與所有國家的運輸,稅收等有關的費用,每個月假設有一個公式(使用df1和df2的數據)計算給定的穀物組合和每個國家每月的總成本每個國家的額外費用。
爲了簡便起見,讓我們說,公式爲三月的總成本的一部分,西班牙是
cost <- .10 * df1[ 「mar」,」oats」] + df2[「tax」,」Spain」] + .....
這是直接的對我來說,選擇第二個數據幀的元素和做用第一個數據幀的列進行算術運算以得到結果。針對某一特定國家:
cost <- .10 * df1[ ,」oats」] + df2[「tax」,」Spain」] + .....
這讓我對西班牙
每個月的費用的問題是:我要重複相同的算法對每一個國家。
另一個版本:
cost <- .10 * df1[ ,」oats」] + df2[「tax」,] + .....
讓我對每個國家的費用,但僅限於
月我想一個方程組,讓我每月對所有的總成本縣。另外,df3
將具有與df1
(月)相同的行數,並且具有與df2
(國家)相同的列數。
編輯...粘貼例如張貼在一個封閉的問題:
# build df1 - cost of grains (with goofy data so I can track the arithemetic)
v1 <- c(1:12)
v2 <- c(13:24)
v3 <- c(25:36)
v4 <- c(37:48)
grain <- data.frame("wheat"=v1,"oats"=v2,"corn"=v3,"rye"=v4)
grain
# build df2 - additional costs (again, with goofy data to see what is being used where and when)
w1 <- c(1.3:4.3)
w2 <- c(5.3:8.3)
w3 <- c(9.3:12.3)
w4 <- c(13.3:16.3)
cost <- data.frame("Spain"=w1,"Peru"=w2,"Mexico"=w3,"Kenya"=w4)
row.names(cost) <- c("packing","shipping","tax","inspection")
cost
# assume 10% wheat, 30% oats and 60% rye with some clown-equation for total cost
# now for my feeble attempt at getting a dataframe that has 12 rows (months) and 4 column (countries)
total_cost <- data.frame(0.1*grain[,"wheat"] +
0.3*grain[,"oats"] +
0.6*grain[,"rye"] +
cost["packing","Mexico"] +
cost["shipping","Mexico"] +
cost["tax","Mexico"] +
cost["inspection","Mexico"])
total_cost
我推薦一個可重複例子。 http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –
看看'聚合'功能。 – Max