使用跨越几个不同国家的时间序列数据集。我的数据集中有许多隐含的缺失值,因为某些国家(美国)在我们的国家开始之前就已经收集了数据。这些遗漏的问题引发了一个错误,“忽略680个观察错误,其中(idx)[[1]]:下标超出范围”。
对我来说很清楚,这些隐性缺失的观察是问题所在。我已经将它们转换为明显的缺失观测值,并且错误仍然存在,但是当我将其转换为零时,总体上可以获得期望的结果。显然这与我的配色方案不符,是一种误导,我更希望在没有数据的情况下将国家留为空白。
相关代码:
# Create the Plotly map
l <- list(color = toRGB("grey95"), width = 0.5)
# specify map projection/options
g <- list(
showframe = FALSE,
showcoastlines = FALSE,
projection = list(type = 'equirectangular', scale = 0.8),
scope = "world",
showcountries = TRUE,
countrycolor = toRGB("#D4D0C8FF"),
showocean = TRUE,
oceancolor = toRGB("#F0F8FF")
)
# Add in the actual data
p <- plot_geo(frame = ~dateq, data = data2) %>%
add_trace( type = "choropleth",
name = "Credit All", z = ~Credit_Firms_all, color = ~Credit_Firms_all, colors = colors_exact,
text = ~country, locationmode = "ISO-3", locations = ~code, marker = list(line = l)
) %>%
layout(
title = "<br><br><br>",
geo = g
) %>%
colorbar(title = 'Credit All', x = 1, y = 0.9, limits = c(-1,1), len = 0.8) %>%
animation_opts(frame = 1, redraw = FALSE)
p
不幸的是,我无法共享我的数据,但是如果有帮助,我将尝试简要说明。约1400个观察结果,共4列。国家(德国),代码(DEU),Credit_Firms_All(5),dateq(2019年第二季度)。国家和代码是字符,dateq是从1982年第二季度到2019年第二季度的每一年和每个季度组合的水平的因子,而Credit_Firms_All是我希望对地图进行底纹处理的数值。我注意到的一件事是,“ NA”不是dateq中的级别之一,但是我不知道这是否是一个问题。
我希望输出结果是一张基于当前dateq值将国家/地区与国家/地区隔离为不同颜色的地图,而缺失的数据则显示为白色/空白,但是我却遇到了上面的错误,我不知道如何调试。