❝最近偶尔遇到个别朋友询问运行代码报错的情况,各种情况都有但是长久的情景几乎是一致。本节来解答一下遇到这些该如何执行。个人观点仅供参考 ❞
案例1
代码语言:javascript复制rlang::last_trace()
没有明显的错误出现,但是却有跟rlang相关的字符,这多半是tidyverse版本的问题,此时重新安装tidyverse即可
案例2
代码语言:javascript复制Error in voronoi_treemap(hoursPerDayCombined ~ Category Subcategory, :
could not find function "voronoi_treemap"
遇到上述情况多半是未加载需要的包,可通过网络检索该函数即可得知所对应的R包
案例3
❝一堆警告信息就是报错不出图,遇到这种情况多半是所使用的R包作者进行了更新,这种情况尤其是在「github」上发布的R包常出现,因此可去作者github主页查看最新的更新情况,一般都会有案例说明。 ❞
案例4
❝毫无头绪的报错,数据处理后就是无结果反馈。这种情况就比较复杂了,有可能是R包之间函数冲突,有可能是版本问题,更甚者是电脑性能的问题。下面举个实际例子来进行说明 ❞
案例图
此图为小编2023年9月25日公众号发布的一篇文档图,此次在原有代码的基础上做了简化,代码如下
加载R包
代码语言:javascript复制library(tidyverse)
library(ggtext)
library(glue)
#install.packages("rcartocolor")
library(rcartocolor)
# devtools::install_github("AllanCameron/VoronoiPlus")
library(VoronoiPlus)
导入数据
代码语言:javascript复制all_countries <- read_csv("all_countries.csv")
country_regions <- read_csv("country_regions.csv")
数据清洗
代码语言:javascript复制au_data <- all_countries |>
select(Category, Subcategory, hoursPerDayCombined, country_iso3) |>
left_join(country_regions, by = "country_iso3") |>
filter(country_name == "Australia") |>
select(Category, Subcategory, hoursPerDayCombined)
au_vor <- voronoi_treemap(hoursPerDayCombined ~ Category Subcategory,
data = au_data)
set.seed(1234)
groups <- filter(au_vor, level == 1)
subgroups <- filter(au_vor, level == 2) |>
group_by(group) |>
mutate(alpha = runif(1, 0, 0.6)) |>
ungroup()
定义颜色
代码语言:javascript复制cols_vec = rcartocolor::carto_pal(length(unique(au_data$Category)) 1, "Prism")[1:length(unique(au_data$Category))]
names(cols_vec) = unique(au_data$Category)
数据可视化
代码语言:javascript复制ggplot()
geom_polygon(data = groups,mapping = aes(x = x, y = y, group = group, fill = group),
colour = "white",linewidth = 5)
geom_polygon(data = subgroups,
mapping = aes(x = x, y = y, group = group, alpha = alpha),
fill = "#fafafa",colour = "#fafafa",linewidth = 0.3)
geom_text(data = groups %>% group_by(group) %>%
summarize(x = mean(x), y = mean(y)),
aes(label=group,x,y),color="black")
scale_alpha_identity()
scale_fill_manual(values = cols_vec)
coord_equal()
theme_void(base_size = 12)
theme(legend.position = "non",
plot.background = element_rect(fill = "white", colour = "white"),
panel.background = element_rect(fill = "white", colour = "white"),
plot.margin = margin(10, 10, 10, 10))
代码问题
❝最近有朋友反馈此图运行代码有问题,但是部分朋友表示可以正常出图,小编很是疑惑;一番检查后终于是找到了问题所在,此段代码小编在一台高性能电脑上可以丝滑出图,但是放到5年前的老电脑上就会出现如下报错,果然R代码的报错真是难以让人琢磨,「也许这就是提示该换电脑了」 ❞