Я очень новичок в R, и в настоящее время я применяю хотя бы небольшое знание R, которое у меня есть для аналитической работы, которую я должен выполнить для работы.Vlookup-match like function in R
У меня есть два блока данных - dataframe A состоит из данных транзакций, а dataframe B состоит из ежемесячного обменного курса для разных валют. рамка
Data A - сделка подробности
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))
То, что я хотел бы сделать, это создать новый столбец в кадре данных A возможно, названный Exchange Rate
. И я хотел бы получить это значение обменного курса путем поиска для кадра данных B, путем сопоставления COLLECTION_CRNCY
и MMYYYY
в данном кадре А до кадра данных МОВ:
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 с помощью ВПРА и но я хотел бы знать, как я могу добиться достижения тех же результатов, что и R, поскольку файл данных о транзакциях довольно велик.
Подобно тому, как замечание общего порядка: с манипуляцией R данных, то лучше думать в терминах базы данных, а не точки зрения Excel. То, что вы хотите сделать, - это объединение, которое можно сделать по-разному в R. –