ToChristianEra <- function(x)
{
era <- substr(x, 1, 1)
year <- as.numeric(substr(x, 2, nchar(x)))
if(era == "H"){
year <- year + 1988
}else if(era == "S"){
year <- year + 1925
}
as.character(year)
}
# calendar transformation (Japanese to Western)
jgb.day <- strsplit(jgb1[,1],"\\.")
warn.old <- getOption("warn")
options(warn = -1)
jgb.day <- lapply(jgb.day, function(x)c(ToChristianEra(x[1]), x[2:length(x)]))
jgb1[, 1] <- as.Date(sapply(jgb.day, function(x)Reduce(function(y,z)paste(y,z, sep="-"),x)))
jgb1[, -1] <- apply(jgb1[, -1], 2, as.numeric)
options(warn = warn.old)
rm(jgb.day)
# create a xts object
jgb.xts <- as.xts(read.zoo(jgb1))
# 3D plot
jgb.xts["2000::"] %>%
data.matrix() %>%
t() %>%
plot_ly(
x=as.Date(index(jgb.xts["2000::"])),
y=c(1,2,3,4,5,6,7,8,9,10,15,20,25,30,40),
z=.,
type="surface"
) %>%
plotly::layout(
scene=list(
xaxis=list(title="date"),
yaxis=list(title="term"),
zaxis=list(title="yield")
)
)