[This article was first published on DataGeeek, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
The Bank of Japan has raised the interest rates and Nikkei has crushed the worst since the Black Monday crash of October 1987. The S&P 500 and DAX have declined similarly, but the DAX has performed slightly better.
library(tidyverse) library(tidyquant) #Nikkei 225 df_nikkei225 <- tq_get("^N225", to = "2024-08-05") %>% tq_transmute(select = "close", mutate_fun = to.daily, col_rename = "nikkei225") #S&P 500 df_snp500 <- tq_get("^GSPC", to = "2024-08-06") %>% tq_transmute(select = "close", mutate_fun = to.daily, col_rename = "snp500") #DAX df_dax <- tq_get("^GDAXI", to = "2024-08-06") %>% tq_transmute(select = "close", mutate_fun = to.daily, col_rename = "dax") #Merging all datasets df_merged <- df_nikkei225 %>% left_join(df_snp500) %>% left_join(df_dax) %>% drop_na() #Index based on benchmark date (2024-07-05 = 100) df_index <- df_merged %>% filter(date >= last(date) - months(1)) %>% pivot_longer(cols = -date, names_to = "type") %>% group_by(type) %>% mutate(index = value / first(value)*100) %>% ungroup() #Compared chart of DAX, S&P 500, and Nikkei 225 for the last month #Dataset for plotting labels df_index_with_labels <- df_index %>% mutate( type = case_when( type == "nikkei225" ~ "Nikkei 225", type == "snp500" ~ "S&P 500", TRUE ~ "DAX" ) ) df_index_with_labels %>% ggplot(aes(date, index, col = type)) + geom_line(linewidth = 1.25) + geom_text( data = df_index_with_labels |> slice_tail(n = 1, by = type), aes(label = type), hjust = 0, vjust = 0, family = "Bricolage Grotesque", size = 5, position = position_jitter(width= -1, height= 1) ) + theme_minimal( base_size = 16, base_family = "Bricolage Grotesque" ) + theme( panel.grid.minor = element_blank(), legend.position = 'none' ) + scale_color_manual( values = c("darkgreen", "darkred", "darkblue") ) + labs( x = element_blank(), y = element_blank(), title = "Black Monday" ) + scale_x_date(expand = expansion(mult = c(0, .2))) + scale_y_continuous( labels = scales::label_number(accuracy = 1) )
To leave a comment for the author, please follow the link and comment on their blog: DataGeeek.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.