【发布时间】:2020-12-18 19:17:47
【问题描述】:
我正在使用RStudio,并且正在运行以下R 代码(用于检索股票价格):
if (!require(BatchGetSymbols)) install.packages('BatchGetSymbols')
library(BatchGetSymbols)
# set dates
first.date <- Sys.Date() - 60
last.date <- Sys.Date()
freq.data <- 'daily'
# set tickers
tickers <- c('AAPL','BIDU')
l.out <- BatchGetSymbols(tickers = tickers,
first.date = first.date,
last.date = last.date,
freq.data = freq.data,
cache.folder = file.path(tempdir(),
'BGS_Cache') ) # cache in tempdir()
library(ggplot2)
p <- ggplot(l.out$df.tickers, aes(x = ref.date, y = price.close))
p <- p + geom_line()
p <- p + facet_wrap(~ticker, scales = 'free_y')
print(p)
p 的输出如下所示:
我希望ggplot2 图表显示公司名称而不是股票代码。 (即APPLE代替“AAPL”,BAIDU代替“BIDU”)。
我有一个csv 文件,其中包含代码名称(代码)及其相关公司名称的列表。如何将代码替换为公司名称,以便它们显示在我的ggplot2 图表中?
我尝试了以下方法(仍然给出与以前相同的图表):
if (!require(BatchGetSymbols)) install.packages('BatchGetSymbols')
library(BatchGetSymbols)
# set dates
first.date <- Sys.Date() - 60
last.date <- Sys.Date()
freq.data <- 'daily'
# set tickers
tickers <- c('AAPL','BIDU')
l.out <- BatchGetSymbols(tickers = tickers,
first.date = first.date,
last.date = last.date,
freq.data = freq.data,
cache.folder = file.path(tempdir(),
'BGS_Cache') ) # cache in tempdir()
codes_list <- read.csv("codes_list.csv", stringsAsFactors=FALSE)
codes_list$code <- as.character(codes_list$code)
codes_list$desc <- as.character(codes_list$desc)
rownames(codes_list) <- codes_list$code
replaced <- names(l.out$df.tickers) %in% codes_list$code
names(l.out$df.tickers)[replaced] <- codes_list[names(l.out$df.tickers)[replaced], "desc"]
library(ggplot2)
p <- ggplot(l.out$df.tickers, aes(x = ref.date, y = price.close))
p <- p + geom_line()
p <- p + facet_wrap(~ticker, scales = 'free_y')
print(p)
“codes_list.csv”文件的摘录如下所示:
code desc
AAPL APPLE
BIDU BAIDU
我根据此处提供的解决方案尝试了上述方法:Replace column name by referring to a table file in R
【问题讨论】: