mir liegt folgende Aufgabenstellung vor:
In der Datei "Amex Cater Star.txt" (siehe Anhang) finden Sie die täglichen diskreten Renditen von American Express, Caterpillar und Starbucks. Die Datei "USD EUR.txt" (siehe Anhang) enthält zudem die täglichen Wechselkurse zwischen USD und EUR. Schreiben Sie eine eigene, benutzerdefinierte Funktion myEURreturn(matrix1, matrix2), der die Matrixen aus den beiden Dateien übergeben werden und die die täglichen Renditen der drei Unternehmen aus Sicht eines EUR-Investors berechnen soll.
Diesbezüglich habe ich folgendes programmiert:
Code: Alles auswählen
library(tidyverse)
amex = read.table("~/EWFA (1)/3_Projekt/2/Amex_Cater_Star.txt", header = T)
amex$date = as.character(amex$date)
exch = read.table("~/EWFA (1)/3_Projekt/2/USD_EUR.txt", header=T)
exch$Mon <- ifelse(nchar(exch$Mon) == 1, paste0("0", exch$Mon), exch$Mon)
exch$Day <- ifelse(nchar(exch$Day) == 1, paste0("0", exch$Day), exch$Day)
exch$date <- paste(exch$Date, exch$Mon, exch$Day, sep = "")
myEURreturn <- function(matrix1, matrix2) {
total = dplyr::right_join(matrix1, matrix2, by = "date") %>%
dplyr::filter(!is.na(axp)) %>%
dplyr::select(-c(Date, Mon, Day)) %>%
dplyr::mutate(rentaxp_usd = (1+axp)*1000,
rentaxp_usd = dplyr::lag(rentaxp_usd) * (1+axp),
rentaxp_eur = rentaxp_usd*Value,
rentaxp_eurch =(rentaxp_eur- dplyr::lag(rentaxp_eur))/dplyr::lag(rentaxp_eur),
rentaxp_eurch = rentaxp_eurch*100,
rentcat_usd = (1+cat)*1000,
rentcat_usd = dplyr::lag(rentcat_usd) * (1+cat),
rentcat_eur = rentcat_usd*Value,
rentcat_eurch =(rentcat_eur- dplyr::lag(rentcat_eur))/dplyr::lag(rentcat_eur),
rentcat_eurch = rentcat_eurch*100,
rentsbux_usd = (1+sbux)*1000,
rentsbux_usd = dplyr::lag(rentsbux_usd) * (1+sbux),
rentsbux_eur = rentsbux_usd*Value,
rentsbux_eurch =(rentsbux_eur- dplyr::lag(rentsbux_eur))/dplyr::lag(rentsbux_eur),
rentsbux_eurch = rentsbux_eurch*100)
}
test = myEURreturn(amex, exch)
Kann mir jemand mit einer Verbesserung meines Codes weiterhelfen?
Vielen Dank und viele Grüße.