У меня есть набор данных, который выглядит так, он называется Data
:
Country Region Code Product name Year Value
Sweden Stockholm 123 Apple 1991 244
Sweden Kirruna 123 Apple 1987 100
Japan Kyoto 543 Pie 1987 544
Denmark Copenhagen 123 Apple 1998 787
Denmark Copenhagen 123 Apple 1987 100
Denmark Copenhagen 543 Pie 1991 320
Denmark Copenhagen 126 Candy 1999 200
Sweden Gothenburg 126 Candy 2013 300
Sweden Gothenburg 157 Tomato 1987 150
Sweden Stockholm 125 Juice 1987 250
Sweden Kirruna 187 Banana 1998 310
Japan Kyoto 198 Ham 1987 157
Japan Kyoto 125 Juice 1987 550
Japan Tokyo 125 Juice 1991 100
Я хочу преобразовать value
(продажи) в евро по отношению к конкретным country
и year
. Для этого у меня есть файл данных, который я сделал с обменными курсами для конкретных country
и year
(которые также скорректированы с учетом инфляции):
Exchange_rates <- read_excel("Data/Exchange_rates.xlsx", col_types = c("numeric", "text", "numeric")) #year, country, value
Чтобы получить значение, которое мне нужно для country
и year
, я использую этот код:
Convert_exchage_rate <- function(Specific_Country, Specific_Year) {
Specific_exchange_rate <- subset(Exchange_rates, Country == Specific_Country)
Specific_exchange_rate <- subset(Specific_exchange_rate, Year == Specific_Year)
Specific_exchange_rate <- as.matrix(Specific_exchange_rate[3]) #gets the specific rate for the specific year
Data <- ??? * Specific_exchange_rate[1] #here comes my question
}
Convert_exchage_rate("Sweden","1987")
Моя проблема в том, что я не знаю, как использовать R для умножения только value
только для записей в Data
, где "Country == Sweden"
и "Year = 1987"
(Specific_Country
и Specific_Year
в функции выше). Я знаю, как умножить столбец значения how на Data$Value <- Data$Value * Specific_exchange_rate[1]
, но теперь как это сделать условно с двумя условиями.
(позже я сделаю цикл для запуска моей функции для всех лет и всех стран в Data
, но я не хотел писать эту часть кода, пока я не смогу заставить ее работать для одной конкретной страны в один конкретный год)
Data$Value[Data$Country == "Sweden" & Data$Year == 1987]
. ЗаменитьData$Value[Data$Country == Specific_Country & Data$Year == Specific_Year]
вместо???
в вашей функции? - person Ronak Shah   schedule 27.09.2018