我對R很新,而且我現在正在申請,但是我不得不爲了工作而進行一項分析工作。Vlookup-match like功能在R
我有兩個數據框 - 數據框A由交易詳情組成,而數據框B由各種貨幣的月結賬匯率組成。
數據幀 - 交易明細
TRANSACTION_ID COLLECTION_CRNCY COLLECTION_AMT MMYYYY LODG_DATE
1 0001 INR 305000 Mar 2014 2014-03-01
2 0002 USD 15000 Oct 2014 2014-10-31
3 0003 JPY 85000 Feb 2015 2015-02-09
4 0004 CNY 1800000 Mar 2015 2015-03-27
structure(list(TRANSACTION_ID = c("0001", "0002", "0003", "0004"),
COLLECTION_CRNCY = c("INR", "USD", "JPY", "CNY"), COLLECTION_AMT = c(305000,
15000, 85000, 1800000), MMYYYY = structure(c(2014.16666666667,
2014.75, 2015.08333333333, 2015.16666666667), class = "yearmon"),
LODG_DATE = structure(c(16130, 16374, 16475, 16521), class = "Date")),
row.names = c(NA, -4L), class = "data.frame")
數據幀B - 匯率
MMYYYY Date CNY INR JPY USD
1 Mar 2014 2014-03-31 4.9444 47.726 82.0845 0.7951654
2 Oct 2014 2014-10-31 4.7552 47.749 87.2604 0.7778469
3 Feb 2015 2015-02-27 4.5990 45.222 87.7690 0.7338372
4 Mar 2015 2015-03-31 4.5179 45.383 87.5395 0.7287036
structure(list(MMYYYY = structure(c(2014.16666666667,
2014.75, 2015.08333333333, 2015.16666666667), class = "yearmon"),
Date = structure(c(16160, 16374, 16493, 16525), class = "Date"), CNY =
c(4.9444, 4.7552, 4.599, 4.5179), INR = c(47.726, 47.749, 45.222, 45.383),
JPY = c(82.0845, 87.2604, 87.769, 87.5395), USD = c(0.795165394, 0.77784692,
0.733837235, 0.728703636)), .Names = c("MMYYYY", "Date", "CNY", "INR", "JPY",
"USD"), class = "data.frame", row.names = c(NA, -4L))
我想什麼做的是建立在數據幀中的一個新列可能命名爲Exchange Rate
。而且我想通過查找到數據幀B到得到這個匯率值,通過在數據幀的COLLECTION_CRNCY
和MMYYYY
匹配數據幀BIE:
TRANSACTION_ID COLLECTION_CRNCY COLLECTION_AMT MMYYYY LODG_DATE exchange.rate
1 0001 INR 305000 Mar 2014 2014-03-01 47.7260000
2 0002 USD 15000 Oct 2014 2014-10-31 0.7778469
3 0003 JPY 85000 Feb 2015 2015-02-09 87.7690000
4 0004 CNY 1800000 Mar 2015 2015-03-27 4.5179000
我可以通過Excel中使用VLOOKUP很容易地做到這一點,匹配,但我想知道如何使用R來實現相同的結果,因爲我的交易細節文件非常龐大。
正如一般性意見:與R數據的操作,這是更好地認爲,在數據庫方面,而不是Excel的條款。你想要做的是一個連接,可以在R中以各種方式完成。 –